@@ -56,6 +56,7 @@ def __init__( self, swx = 10, swy = 10, hideAxis = True, title = "view", colorma
5656 self .colorbar = None
5757 self .valMin = 0.0
5858 self .valMmax = 1.0
59+ self .simTime = 0.0
5960 self .plotFlag_ = True
6061
6162 @staticmethod
@@ -119,6 +120,53 @@ def updateAxis( self ):
119120 self .zAx .axis = vp .vector ( z .dot ( right ), z .dot ( up ), 0.0 )
120121 self .axisLength .text = "{:.2f} <i>u</i>m" .format ( dx * 1e6 * self .scene .range * self .colorbar .width / self .scene .width )
121122
123+ def raiseMax ( self , isDouble = False ):
124+ valRange = self .valMax - self .valMin
125+ if isDouble :
126+ self .valMax = self .valMin + 2 * valRange
127+ else :
128+ self .valMax = self .valMin + valRange * 1.1111111111111111111111
129+
130+ def lowerMax ( self , isDouble = False ):
131+ valRange = self .valMax - self .valMin
132+ if isDouble :
133+ self .valMax = self .valMin + 0.5 * valRange
134+ else :
135+ self .valMax = self .valMin + valRange * 0.9
136+
137+ def raiseMin ( self , isDouble = False ):
138+ valRange = self .valMax - self .valMin
139+ if isDouble :
140+ self .valMin = self .valMmax - 0.5 * valRange
141+ else :
142+ self .valMin = self .valMax - valRange * 0.9
143+
144+ def lowerMin ( self , isDouble = False ):
145+ valRange = self .valMax - self .valMin
146+ if isDouble :
147+ self .valMin = self .valMax - 2 * valRange
148+ else :
149+ self .valMin = self .valMax - valRange * 1.1111111111111111111111
150+
151+
152+
153+ def scaleColorbar ( self , event ):
154+ loc = event .pos
155+ #print( loc.y )
156+ if loc .y > 4 and loc .y < 4.7 :
157+ self .lowerMax ( self .scene .mouse .shift )
158+ self .barMax .text = "{:.3f}" .format (self .valMax )
159+ elif loc .y > 4.85 and loc .y < 5.5 :
160+ self .raiseMax ( self .scene .mouse .shift )
161+ self .barMax .text = "{:.3f}" .format (self .valMax )
162+ elif loc .y > - 3.25 and loc .y < - 2.6 :
163+ self .raiseMin ( self .scene .mouse .shift )
164+ self .barMin .text = "{:.3f}" .format (self .valMin )
165+ elif loc .y > - 3.95 and loc .y < - 3.45 :
166+ self .lowerMin ( self .scene .mouse .shift )
167+ self .barMin .text = "{:.3f}" .format (self .valMin )
168+ self .drawables_ [0 ].updateLimits ( self .valMin , self .valMax )
169+
122170 def innerColorbar ( self , title , bg ):
123171 barWidth = SCALE_SCENE * 1.5
124172 if ( bgLookup (bg ).mag < 1 ):
@@ -130,6 +178,8 @@ def innerColorbar( self, title, bg ):
130178 self .colorbar .userzoom = False
131179 self .colorbar .userspin = False
132180 self .colorbar .userpan = False
181+ #self.colorbar.bind( 'keydown', self.scaleColorbar )
182+ self .colorbar .bind ( 'click' , self .scaleColorbar )
133183 height = 0.10
134184 width = 5
135185 axOrigin = vp .vector ( 0 , - 5.5 , 0 )
@@ -235,14 +285,14 @@ def firstDraw( self, mergeDisplays, rotation=0.0, elev=0.0, azim=0.0, center = [
235285 else :
236286 self .doAutoscale ()
237287 self .updateAxis ()
288+ print ( "Self.viewIDX = " , self .viewIdx , ", MOOView.viewIdx = " , MooView .viewIdx )
238289 if self .viewIdx == (MooView .viewIdx - 1 ):
239- self .graph = vp .graph ( title = "Graph" , xtitle = "Time (s)" , ytitle = " Units here" , width = 700 , fast = False , align = "left" )
240- self .graphPlot1 = vp .gcurve ( color = vp .color .blue , interval = - 1 )
241- #self.graphPlot1.data = [[0,0], [1,1],[2,0],[3,4],[4,0], [5,1]]
242- #self.graphPlot1.plot( [[0,0], [1,1],[2,0],[3,4],[4,0]] )
290+ MooView .viewList [0 ].graph = vp .graph ( title = "Graph" , xtitle = "Time (s)" , ytitle = " Units here" , width = 700 , fast = False , align = "left" )
291+ MooView .viewList [0 ].graphPlot1 = vp .gcurve ( color = vp .color .blue , interval = - 1 )
243292
244293
245294 def updateValues ( self , simTime ):
295+ self .simTime = simTime
246296 for i in self .drawables_ :
247297 i .updateValues ( simTime )
248298 if self .doRotation and abs ( self .rotation ) < 2.0 * 3.14 / 3.0 :
@@ -454,6 +504,19 @@ def updateValues( self, simTime ):
454504
455505 self .displayValues ( indices )
456506
507+ def updateLimits ( self , vmin , vmax ):
508+ if self .autoscale :
509+ valMin = min ( self .val )
510+ valMax = max ( self .val )
511+ else :
512+ valMin = self .valMin = vmin
513+ valMax = self .valMax = vmax
514+ scaleVal = NUM_CMAP * (self .val - valMin ) / (valMax - valMin )
515+ #indices = scaleVal.ndarray.astype( int )
516+ indices = np .maximum ( np .minimum ( scaleVal , NUM_CMAP - 0.5 ), 0.0 ).astype (int )
517+ self .displayValues ( indices )
518+
519+
457520 def displayValues ( self , indices ):
458521 for idx , seg in zip ( indices , self .segments ):
459522 seg .color = self .rgb [ idx ]
@@ -495,20 +558,6 @@ def plotHistory( self, path, field, graph, plot ):
495558 graph .title = path + "." + field
496559 dat = [[x ,y ] for x , y in zip ( t , v ) ]
497560 plot .data = dat
498- #print (dat)
499- #print( "IN plotHistory, ", len( dat), len( v ) )
500- #plot.data = [[x,y] for x, y in zip( t, v ) ]
501- #plot.data = [[x,sin(x)] for x in range( 0.0, 10.0, 0.1 ) ]
502- '''
503- fig = plt.figure( 1 )
504- plt.ion()
505- plt.title( path + "." + field )
506- plt.xlabel( "Time (s)" )
507- plt.ylabel( field + " um, units?" )
508- plt.plot( t, v )
509- plt.show( block = False )
510- fig.canvas.draw()
511- '''
512561
513562
514563#####################################################################
0 commit comments