@@ -71,7 +71,12 @@ def replayLoop():
7171 for view in MooView .viewList :
7272 view .replaySnapshot ( idx )
7373 vp .sleep ( MooView .viewList [0 ].sleep )
74- vp .sleep ( 0.5 ) # Pause 0.5 sec between replays
74+ t = time .time () + 0.5
75+ while time .time () < t :
76+ for view in MooView .viewList :
77+ view .rotateFunc ()
78+ vp .sleep ( MooView .viewList [0 ].sleep )
79+ #vp.sleep( 0.5 ) # Pause 0.5 sec between replays
7580
7681 def notifySimulationEnd ( self ):
7782 if self .viewIdx == 0 :
@@ -101,7 +106,11 @@ def toggleReplay( self ):
101106 def setSleepTime ( self ):
102107 idx = int ( round ( self .sleepSlider .value ) )
103108 self .sleep = sleepTimes [idx ]
104- self .sleepLabel .text = " Frame dt = {:1.3f} sec" .format ( self .sleep )
109+ self .sleepLabel .text = "Frame dt = {:1.4f} s" .format ( self .sleep )
110+
111+ def setRotation ( self , slider ):
112+ self .doRotation = ( abs ( self .rotation ) > 0.005 )
113+ self .rotation = slider .value
105114
106115 def updateAxis ( self ):
107116 if not self .colorbar :
@@ -219,10 +228,12 @@ def makeColorbar( self, doOrnaments = True, colorscale = 'jet', bg = 'default' )
219228 chk .idx = idx
220229 self .cbox .append ( chk )
221230 self .colorbar .append_to_title ("\n " )
222- self .timeLabel = vp .wtext ( text = "Time = 0.000 sec " , pos = self .colorbar .title_anchor )
223- self .sleepLabel = vp .wtext ( text = " Frame dt = 0.005 sec " , pos = self .colorbar .title_anchor )
231+ self .timeLabel = vp .wtext ( text = "Time = 0.000 s \n " , pos = self .colorbar .title_anchor )
232+ self .sleepLabel = vp .wtext ( text = "Frame dt = 0.0050 s " , pos = self .colorbar .title_anchor )
224233 self .sleepSlider = vp .slider ( pos = self .colorbar .title_anchor , length = 200 , bind = self .setSleepTime , min = 0 , max = len ( sleepTimes ) - 1 , value = min ( len ( sleepTimes ), 2 ) )
225234 self .replayButton = vp .button ( text = "Start Replay" , pos = self .colorbar .title_anchor , bind = self .toggleReplay , disabled = True )
235+ self .rotateLabel = vp .wtext ( text = " Rotation" , pos = self .colorbar .title_anchor )
236+ self .rotateSlider = vp .slider ( pos = self .colorbar .title_anchor , length = 200 , bind = self .setRotation , min = - 0.1 , max = 0.1 , value = 0.0 )
226237 self .colorbar .append_to_title ("\n " )
227238
228239 def selectCbar ( self , idx ):
@@ -323,23 +334,26 @@ def firstDraw( self, mergeDisplays, rotation=0.0, elev=0.0, azim=0.0, center = [
323334 MooView .viewList [0 ].graph = vp .graph ( title = "Graph" , xtitle = "Time (s)" , ytitle = " Units here" , width = 700 , fast = False , align = "left" )
324335 MooView .viewList [0 ].graphPlot1 = vp .gcurve ( color = vp .color .blue , interval = - 1 )
325336
337+ def rotateFunc (self ):
338+ if self .doRotation and abs ( self .rotation ) < 2.0 * 3.14 / 3.0 :
339+ self .scene .forward = vp .rotate ( self .scene .forward , angle = self .rotation , axis = self .scene .up )
340+ self .updateAxis ()
326341
327342 def updateValues ( self , simTime ):
328343 self .simTime = simTime
329344 for i in self .drawables_ :
330345 i .updateValues ( simTime )
331- if self .doRotation and abs ( self .rotation ) < 2.0 * 3.14 / 3.0 :
332- self .scene .forward = vp .rotate ( self .scene .forward , angle = self .rotation , axis = self .scene .up )
333- self .updateAxis ()
346+ self .rotateFunc ()
334347 if self .viewIdx == 0 :
335- self .timeLabel .text = "Time = {:7.3f} sec " .format ( simTime )
348+ self .timeLabel .text = "Time = {:7.3f} s \n " .format ( simTime )
336349 vp .sleep ( self .sleep )
337350
338351 def replaySnapshot ( self , idx ):
339352 for i in self .drawables_ :
340353 simTime = i .replaySnapshot ( idx )
354+ self .rotateFunc ()
341355 if self .viewIdx == 0 :
342- self .timeLabel .text = "Time = {:7.3f} sec " .format ( simTime )
356+ self .timeLabel .text = "Time = {:7.3f} s \n " .format ( simTime )
343357 self .updateAxis ()
344358
345359 def doAutoscale ( self ):
@@ -403,13 +417,15 @@ def moveView(self, event):
403417 self .scene .camera .rotate ( angle = - dtheta , axis = camAxis , origin = self .scene .camera .pos )
404418 return
405419 if event .key == "d" : # Diameter scaling down
406- for dbl in self .drawables_ :
407- dbl .diaScale *= 1.0 - self .sensitivity * 4
420+ moov = MooView .viewList [MooView .colorbarViewIdx ]
421+ for dbl in moov .drawables_ :
422+ dbl .diaScale *= 1.0 - moov .sensitivity * 4
408423 dbl .updateDiameter ()
409424 return
410425 if event .key == "D" :
411- for dbl in self .drawables_ :
412- dbl .diaScale *= 1.0 + self .sensitivity * 4
426+ moov = MooView .viewList [MooView .colorbarViewIdx ]
427+ for dbl in moov .drawables_ :
428+ dbl .diaScale *= 1.0 + moov .sensitivity * 4
413429 dbl .updateDiameter ()
414430 return
415431 if event .key == "s" : # Scale down sleep time, make it faster.
0 commit comments