Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] r2362 - trunk/scenes/csafe/python


Chronological Thread 
  • From:
  • To:
  • Subject: [Manta] r2362 - trunk/scenes/csafe/python
  • Date: Sat, 20 Dec 2008 19:56:15 -0700 (MST)

Author: brownlee
Date: Sat Dec 20 19:56:13 2008
New Revision: 2362

Modified:
   trunk/scenes/csafe/python/Configuration.py
   trunk/scenes/csafe/python/Histogram.py
   trunk/scenes/csafe/python/SceneInfo.py
   trunk/scenes/csafe/python/csafe_demo.cfg
   trunk/scenes/csafe/python/csafe_scene.py
Log:
CSAFE fixes.  fixing configuration writing, you can update measurement frame 
as you type instead of clicking OK.  Had to remove the code that only 
contained one window for the measurementsFrame as the windows contents are 
different whether it's volume or particle data

Modified: trunk/scenes/csafe/python/Configuration.py
==============================================================================
--- trunk/scenes/csafe/python/Configuration.py  (original)
+++ trunk/scenes/csafe/python/Configuration.py  Sat Dec 20 19:56:13 2008
@@ -34,7 +34,10 @@
     histoGroups = scene.frame.histoGroups
 
     f.write('[currentHistogram]\n')
-    f.write( str( scene.frame.histoGroups.index( scene.currentHistogram ) ) )
+    if (scene.currentHistogram != None):
+      f.write( str( scene.frame.histoGroups.index( scene.currentHistogram ) 
) )
+    else :
+      f.write(0)
     f.write('\n\n')
 
     f.write('[currentParticleHistogram]\n')

Modified: trunk/scenes/csafe/python/Histogram.py
==============================================================================
--- trunk/scenes/csafe/python/Histogram.py      (original)
+++ trunk/scenes/csafe/python/Histogram.py      Sat Dec 20 19:56:13 2008
@@ -13,6 +13,8 @@
 from csafe_scene import setup
 from wxManta     import moveToMouse, opj
 
+import FloatSpin as FS
+
 data = []
 numBuckets = 1
 hMin = 0.0
@@ -47,8 +49,10 @@
         #       self.cropMax = 1.5;
         self.colorMin = -99999.0
         self.colorMax = 99999.0
+        self.colorDMin = dataMin
+        self.colorDMax = dataMax
         self.dMin = dataMin
-        self.dMax = dataMax  #the min and max of displayed data
+        self.dMax = dataMax  #the min and max of displayed data (zoomin in 
region)
         self.zoomDMin = dataMin #min data value of data to display (may not 
be an actual value contianed in data)
         self.zoomDMax = dataMax #max data value of data to display (may not 
be an actual value contianed in data)
         self.absoluteDMin = self.dMin  #absolute min of the data
@@ -57,11 +61,9 @@
         wx.EVT_PAINT(self, self.OnPaint)
         self.transferF = transferF
         self.SetValues(histValues, len(histValues), width, height)
-        self.colorDMin = self.dMin
-        self.colorDMax = self.dMax
+        self.cropDMin = self.absoluteDMin
+        self.cropDMax = self.absoluteDMax
         self.Update()
-        self.zoomDMin = self.dMin
-        self.zoomDMax = self.dMax
         self.Bind(wx.EVT_LEFT_DOWN, self.OnClick)
         self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
         self.Bind(wx.EVT_RIGHT_UP, self.OnRightClick)
@@ -77,12 +79,14 @@
         self.dMax = dataMax  #the min and max of displayed data
         self.zoomDMin = dataMin #min data value of data to display (may not 
be an actual value contianed in data)
         self.zoomDMax = dataMax #max data value of data to display (may not 
be an actual value contianed in data)
-        self.absoluteDMin = self.dMin  #absolute min of the data (ignoring 
zoom)
-        self.absoluteDMax = self.dMax
-        self.colorDMin = self.dMin  #scale colors by this minimum value
-        self.colorDMax = self.dMax  #scale colors by this maximum value
+        self.absoluteDMin = dataMin  #absolute min of the data (ignoring 
zoom)
+        self.absoluteDMax = dataMax
+        self.colorDMin = dataMin  #scale colors by this minimum value
+        self.colorDMax = dataMax  #scale colors by this maximum value
         self.zoomDMin = self.dMin   
-        self.zoomDMax = self.dMax   
+        self.zoomDMax = self.dMax
+        self.cropDMin = dataMin
+        self.cropDMax = dataMax
         self.data = histValues
         self.numBuckets = len(histValues)
         self.Update()
@@ -151,7 +155,7 @@
             self.draggingLeft = False
             self.draggingRight = False
             self.cropMin = pos
-        self.UpdateDMinMax()
+        self.UpdateDisplayedValues()
     
     def OnLeftUp(self, evt):
         pos = float(evt.GetPosition().x - 
self.paddingW/2.0)/float(self.width)
@@ -160,7 +164,9 @@
             temp = self.cropMax
             self.cropMax = self.cropMin
             self.cropMin = temp
-            self.UpdateDMinMax()
+            self.UpdateDisplayedValues()
+            self.UpdateCropDMin()
+            self.UpdateCropDmax()
             self.Refresh()
             
         self.dragging = False
@@ -176,11 +182,13 @@
         #pdc = wx.PaintDC(self)
         #pdc.Clear()
         #dc = wx.GCDC(pdc)
+        if (self.dMin == self.dMax):  # don't interact if no clipping range
+          return
         pos = float(evt.GetPosition().x - 
self.paddingW/2.0)/float(self.width)
         update_clip = False
         if self.selecting == True:
             self.cropMax = pos
-            self.UpdateDMinMax()
+            self.UpdateDisplayedValues()
             self.Refresh()
             update_clip = True
         if self.dragging == True:
@@ -191,17 +199,21 @@
                 self.cropMin = 0
             if self.cropMax > 1.0:
                 self.cropMax = 1.0
-            self.UpdateDMinMax()
+            self.UpdateDisplayedValues()
+            self.UpdateCropDMin()
+            self.UpdateCropDMax()
             self.Refresh()
             update_clip = True
         if self.draggingLeft == True:
             self.cropMin = pos
-            self.UpdateDMinMax()
+            self.UpdateDisplayedValues()
+            self.UpdateCropDMin()
             self.Refresh()
             update_clip = True
         elif self.draggingRight == True:
             self.cropMax = pos
-            self.UpdateDMinMax()
+            self.UpdateDisplayedValues()
+            self.UpdateCropDMax()
             self.Refresh()
             update_clip = True
         if (update_clip and self.parent.group != 1):  # if not the volumedata
@@ -223,7 +235,7 @@
         self.Update()
         
     #update dMin/Max, cropMin/Max based on zoomDMin/Max    
-    def UpdateDMinMax(self):
+    def UpdateDisplayedValues(self):
         absoluteDWidth = self.absoluteDMax - self.absoluteDMin
         if absoluteDWidth == 0:
            absoluteDWidth = 1.0
@@ -234,12 +246,25 @@
            self.dMax = maxBucket*(absoluteDWidth/self.numBuckets)
         else:
            self.dMin = self.dMax = 0.0
+        
+
+    def UpdateCropDMin(self):
         dWidth = self.dMax - self.dMin
         self.cropDMin = self.cropMin*dWidth + self.dMin # cropped data min
+        if (self.parent.group == 1):
+            self.colorDMin = self.cropDMin
+            self.scene.test.setVolColorMinMax(self.colorDMin, self.colorDMax)
+            self.scene.test.setVolClipMinMax(self.absoluteDMin, 
self.absoluteDMax, self.cropDMin, self.cropDMax)
+            self.Update()
+
+    def UpdateCropDMax(self):
+        dWidth = self.dMax - self.dMin
         self.cropDMax = self.cropMax*dWidth + self.dMin # cropped data max
-        
         if (self.parent.group == 1):
-            self.scene.test.setVolClipMinMax(self.dMin, self.dMax, 
self.cropDMin, self.cropDMax)
+            self.colorDMax = self.cropDMax
+            self.scene.test.setVolColorMinMax(self.colorDMin, self.colorDMax)
+            self.scene.test.setVolClipMinMax(self.absoluteDMin, 
self.absoluteDMax, self.cropDMin, self.cropDMax)
+            self.Update()
         
     def UpdateCropToD(self):
         dWidth = self.dMax - self.dMin
@@ -256,7 +281,7 @@
         width = self.width
         height = self.height
         print "0.1"
-        self.UpdateDMinMax()
+        self.UpdateDisplayedValues()
         print "1"
         data = self.data
         
@@ -308,6 +333,8 @@
         #    end += step
 
         colorWidth = float(self.colorDMax - self.colorDMin)
+        if (colorWidth == 0.0):
+            colorWidth = 1.0;
         croppedHeightValues = int(width)*[0]
         print "colors"
         for i in range(0,int(width)):
@@ -329,7 +356,7 @@
             if frequency > hMax:
                 hMax = frequency
         if hMax > hMin:
-            for i in range(0, width):
+            for i in range(0, int(width)):
                 frequency = croppedHeightValues[i]
                 barHeightNorm = float(frequency)/float(hMax)
                 # print str(frequency) + " " + str(barHeightNorm)
@@ -369,7 +396,8 @@
         if cropMax > 1.0:
             cropMax = 1.0
         cropWidth = (float(cropMax) - float(cropMin))*float(self.width)
-        dc.DrawRectangle(float(cropMin)*float(self.width) + 
self.paddingW/2.0 , 0, cropWidth, self.height)
+        if (self.dMin != self.dMax):
+            dc.DrawRectangle(float(cropMin)*float(self.width) + 
self.paddingW/2.0 , 0, cropWidth, self.height)
         
         # draw cropping texta
         dc.SetTextForeground(wx.Colour(255,255,255))
@@ -451,7 +479,7 @@
         for i in range(0, self.scene.histogramBuckets):
             self.datavalues.append(5)
         self.dataMin = 0
-        self.dataMax = 100
+        self.dataMax = 0
         self.numbuckets = self.scene.histogramBuckets
         self.width = 300.0
         self.height = 40.0
@@ -692,9 +720,7 @@
         self.SetAutoLayout(True)
     
     def OnClickMeasurements(self, evt):
-        global measurementsWindow
-        if not measurementsWindow:
-            measurementsWindow = MeasurementsFrame( self, -1, self.title + " 
Measurements",
+        measurementsWindow = MeasurementsFrame( self, -1, self.title + " 
Measurements",
                                                     self.histogram.zoomDMin, 
self.histogram.zoomDMax,
                                                     self.histogram.cropDMin, 
self.histogram.cropDMax,
                                                     
self.histogram.colorDMin, self.histogram.colorDMax, self.group)
@@ -703,6 +729,9 @@
         measurementsWindow.Raise()
 
     def SendValues(self, zoomMin, zoomMax, cropMin, cropMax, colorMin, 
colorMax):  # sent from MeasurementsFrame
+        if (self.histogram.parent.group == 1):
+            colorMin = cropMin
+            colorMax = cropMax
         print "min, max: " + str(cropMin) + " " + str(cropMax)
         self.histogram.zooms.append( (self.histogram.zoomDMin, 
self.histogram.zoomDMax))
         self.histogram.zoomDMin = zoomMin
@@ -712,28 +741,30 @@
         self.histogram.Update()
         min = 0
         max = 0
+        adWidth = self.histogram.absoluteDMax - self.histogram.absoluteDMin
         dWidth = self.histogram.dMax - self.histogram.dMin
         if dWidth == 0:
            dWidth = 1.0
         self.histogram.cropMin = (cropMin - self.histogram.dMin)/dWidth
         self.histogram.cropMax = (cropMax - self.histogram.dMin)/dWidth
-        if self.histogram.cropDMin < 0.0:
-            self.histogram.cropDMin = 0.0
-        if self.histogram.cropDMin > 1.0:
-            self.histogram.cropDMin = 1.0
-        if self.histogram.cropDMax < 0.0:
-            self.histogram.cropDMax = 0.0
-        if self.histogram.cropDMax > 1.0:
-            self.histogram.cropDMax = 1.0
+        if self.histogram.cropMin < 0.0:
+            self.histogram.cropMin = 0.0
+        if self.histogram.cropMin > 1.0:
+            self.histogram.cropMin = 1.0
+        if self.histogram.cropMax < 0.0:
+            self.histogram.cropMax = 0.0
+        if self.histogram.cropMax > 1.0:
+            self.histogram.cropMax = 1.0
             
-        self.histogram.cropDMin = self.histogram.cropMin*dWidth + 
self.histogram.dMin # cropped data min
-        self.histogram.cropDMax = self.histogram.cropMax*dWidth + 
self.histogram.dMin # cropped data max
+        self.histogram.cropDMin = cropMin # cropped data min
+        self.histogram.cropDMax = cropMax # cropped data max
         if (self.histogram.parent.group == 0):
             if self.transferFPanel.transferFPanel.histogramGroup == self:
                 
self.scene.test.setSphereColorMinMax(self.histogram.varIndex, colorMin, 
colorMax)
         else:
                 self.scene.test.setVolColorMinMax(colorMin, colorMax)
-                self.scene.test.setVolClipMinMax(self.histogram.dMin, 
self.histogram.dMax, cropMin, cropMax)
+                
self.scene.test.setVolClipMinMax(self.histogram.absoluteDMin, 
self.histogram.absoluteDMax, cropMin, cropMax)
+                print "vals: " + str(self.histogram.dMin) + " " + 
str(self.histogram.dMax) + " " + str(cropMin) + " " + str(cropMax)
         
     def OnClickZoomIn(self, evt):
         self.histogram.ZoomIn()
@@ -834,28 +865,36 @@
         gbs = wx.GridBagSizer(5,5)
         self.group = group
         self.zoomText = wx.StaticText(self, -1, "Zoom into data values: ", 
(20, 10))
-        self.zoomMinTcl = wx.TextCtrl(self, -1, str(zoomMin), size=(125, -1))
-        self.zoomMaxTcl = wx.TextCtrl(self, -1, str(zoomMax), size=(125, -1))
-     #   if (group == 0): # Particles
+        spin = self.zoomMinFS = self.addSpinner(self,zoomMin);
+        self.Bind(FS.EVT_FLOATSPIN, self.OnZoomMinFS, self.zoomMinFS )
+        spin = self.zoomMaxFS = self.addSpinner(self,zoomMax);
+        self.Bind(FS.EVT_FLOATSPIN, self.OnZoomMaxFS, self.zoomMaxFS )
         self.cropText = wx.StaticText(self, -1, "Crop displayed data values: 
", (20, 10))
-        self.cropMinTcl = wx.TextCtrl(self, -1, str(cropMin), size=(125, -1))
-        self.cropMaxTcl = wx.TextCtrl(self, -1, str(cropMax), size=(125, -1))
-        self.colorText = wx.StaticText(self, -1, "Crop color values: ", (20, 
10))
-        self.colorMinTcl = wx.TextCtrl(self, -1, str(colorMin), size=(125, 
-1))
-        self.colorMaxTcl = wx.TextCtrl(self, -1, str(colorMax), size=(125, 
-1))
+        spin = self.cropMinFS = self.addSpinner(self,cropMin);
+        self.Bind(FS.EVT_FLOATSPIN, self.OnCropMinFS, self.cropMinFS )
+        spin = self.cropMaxFS = self.addSpinner(self,cropMax);
+        self.Bind(FS.EVT_FLOATSPIN, self.OnCropMaxFS, self.cropMaxFS )
+        
+        if (group == 0): # Particles
+            self.colorText = wx.StaticText(self, -1, "Crop color values: ", 
(20, 10))
+            spin = self.colorMinFS =self. addSpinner(self,colorMin);
+            self.Bind(FS.EVT_FLOATSPIN, self.OnColorMinFS, self.colorMinFS )
+            spin = self.colorMaxFS = self.addSpinner(self,colorMax);
+            self.Bind(FS.EVT_FLOATSPIN, self.OnColorMaxFS, self.colorMaxFS )
         self.button = wx.Button(self, -1, "OK")
         self.cancelB = wx.Button(self, -1, "Cancel")
         
         gbs.Add(self.zoomText, (1,0))
-        gbs.Add(self.zoomMinTcl, (1,1))
-        gbs.Add(self.zoomMaxTcl, (1,2))
-#        if (group == 0):
+        gbs.Add(self.zoomMinFS, (1,1))
+        gbs.Add(self.zoomMaxFS, (1,2))
         gbs.Add(self.cropText, (2,0))
-        gbs.Add(self.cropMinTcl, (2,1))
-        gbs.Add(self.cropMaxTcl, (2,2))
-        gbs.Add(self.colorText, (3,0))
-        gbs.Add(self.colorMinTcl, (3,1))
-        gbs.Add(self.colorMaxTcl, (3,2))
+        gbs.Add(self.cropMinFS, (2,1))
+        gbs.Add(self.cropMaxFS, (2,2))
+        
+        if (group == 0):
+            gbs.Add(self.colorText, (3,0))
+            gbs.Add(self.colorMinFS, (3,1))
+            gbs.Add(self.colorMaxFS, (3,2))
         
         vs2 = wx.BoxSizer( wx.HORIZONTAL )
         
@@ -876,22 +915,85 @@
         self.Bind(wx.EVT_BUTTON, self.OnOK, self.button)
         self.Bind(wx.EVT_BUTTON, self.OnCancel, self.cancelB)
         self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
+
+    def addSpinner(self, where, value, id=wx.ID_ANY):
+        floatspin = FS.FloatSpin(where, id,
+                                 increment=0.01, value=value,
+                                 extrastyle=FS.FS_LEFT)
+        floatspin.SetFormat("%g")
+        floatspin.SetDigits(5)
+        return floatspin
+
+    def OnZoomMinFS(self, evt):
+        print "OnZoomMin"
+        val = self.zoomMinFS.GetValue()
+        val2 = self.zoomMaxFS.GetValue()
+        if (val > val2):
+            val = val2
+            self.zoomMinFS.SetValue(val2);
+        self.ApplyValues()
+
+    def OnZoomMaxFS(self, evt):
+        val = self.zoomMaxFS.GetValue()
+        val2 = self.zoomMinFS.GetValue()
+        if (val < val2):
+            val = val2
+            self.zoomMaxFS.SetValue(val2);
+        self.ApplyValues()
+
+    def OnCropMinFS(self, evt):
+        val = self.cropMinFS.GetValue()
+        val2 = self.cropMaxFS.GetValue()
+        if (val > val2):
+            val = val2
+            self.cropMinFS.SetValue(val2);
+        self.ApplyValues()
+
+    def OnCropMaxFS(self, evt):
+        val = self.cropMaxFS.GetValue()
+        val2 = self.cropMinFS.GetValue()
+        if (val < val2):
+            val = val2
+            self.cropMaxFS.SetValue(val2);
+        self.ApplyValues()
+        
+    def OnColorMinFS(self, evt):
+        val = self.colorMinFS.GetValue()
+        val2 = self.colorMaxFS.GetValue()
+        if (val > val2):
+            val = val2
+            self.colorMinFS.SetValue(val2);
+        self.ApplyValues()
+
+    def OnColorMaxFS(self, evt):
+        val = self.colorMaxFS.GetValue()
+        val2 = self.colorMinFS.GetValue()
+        if (val < val2):
+            val = val2
+            self.colorMaxFS.SetValue(val2);
+        self.ApplyValues()
         
     def OnCancel(self, evt):
         self.Show( False )
-        
-    def OnOK(self, event):
-        zoomMin = self.zoomMinTcl.GetValue()
-        zoomMax = self.zoomMaxTcl.GetValue()
+
+    def ApplyValues(self):
+        zoomMin = self.zoomMinFS.GetValue()
+        zoomMax = self.zoomMaxFS.GetValue()
         cropMin = 0
         cropMax = 0
-        cropMin = self.cropMinTcl.GetValue()
-        cropMax = self.cropMaxTcl.GetValue()
-        colorMin = self.colorMinTcl.GetValue()
-        colorMax = self.colorMaxTcl.GetValue()
+        cropMin = self.cropMinFS.GetValue()
+        cropMax = self.cropMaxFS.GetValue()
+        if (self.group == 0):
+            colorMin = self.colorMinFS.GetValue()
+            colorMax = self.colorMaxFS.GetValue()
+        else:
+            colorMin = cropMin
+            colorMax = cropMax
         #print "zomMin: " + str(zoomMin)
         self.parent.SendValues(float(zoomMin), float(zoomMax), 
float(cropMin), float(cropMax), float(colorMin), float(colorMax))
-    
+        
+    def OnOK(self, event):
+        self.ApplyValues()
         self.Show( False )
 
     def OnCloseWindow(self, event):

Modified: trunk/scenes/csafe/python/SceneInfo.py
==============================================================================
--- trunk/scenes/csafe/python/SceneInfo.py      (original)
+++ trunk/scenes/csafe/python/SceneInfo.py      Sat Dec 20 19:56:13 2008
@@ -40,4 +40,5 @@
                 self.forceDataMin = float(0) #manually set volume data range
                 self.forceDataMax = float(0)
                 self.stepSize = float(0.0125)
+                self.currentHistogram = None
 

Modified: trunk/scenes/csafe/python/csafe_demo.cfg
==============================================================================
--- trunk/scenes/csafe/python/csafe_demo.cfg    (original)
+++ trunk/scenes/csafe/python/csafe_demo.cfg    Sat Dec 20 19:56:13 2008
@@ -179,13 +179,127 @@
 1.0 1.0 0.0 0.0 1.0
 
 
+[Transfer Function]
+InvRainbowIso
+10
+12
+0.0 0.527999997139 0.527999997139 1.0 1.0
+0.0909090936184 0.303999990225 0.582400023937 1.0 1.0
+0.181818187237 0.0 0.665600001812 0.832000017166 1.0
+0.272727280855 0.0 0.712000012398 0.569599986076 1.0
+0.363636374474 0.0 0.744000017643 0.297600001097 1.0
+0.454545468092 0.0 0.759999990463 0.0 1.0
+0.54545456171 0.303999990225 0.759999990463 0.0 1.0
+0.636363625526 0.550400018692 0.688000023365 0.0 1.0
+0.727272748947 0.680000007153 0.624000012875 0.0 1.0
+0.818181872368 0.751999974251 0.601599991322 0.0 1.0
+0.909090936184 1.0 0.500800013542 0.167999997735 1.0
+1.0 1.0 0.423999994993 0.423999994993 1.0
+
+
+[Transfer Function]
+InvRainbow
+11
+12
+0.0 0.0 0.0 1.0 1.0
+0.0909090936184 0.0 0.40000000596 1.0 1.0
+0.181818187237 0.0 0.800000011921 1.0 1.0
+0.272727280855 0.0 1.0 0.800000011921 1.0
+0.363636374474 0.0 1.0 0.40000000596 1.0
+0.454545468092 0.0 1.0 0.0 1.0
+0.54545456171 0.40000000596 1.0 0.0 1.0
+0.636363625526 0.800000011921 1.0 0.0 1.0
+0.727272748947 1.0 0.917647063732 0.0 1.0
+0.818181872368 1.0 0.800000011921 0.0 1.0
+0.909090936184 1.0 0.40000000596 0.0 1.0
+1.0 1.0 0.0 0.0 1.0
+
+
+[Transfer Function]
+Rainbow
+12
+12
+0.0 1.0 0.0 0.0 1.0
+0.0909090936184 1.0 0.40000000596 0.0 1.0
+0.181818187237 0.0 0.800000011921 0.0 1.0
+0.272727280855 1.0 0.917647063732 0.0 1.0
+0.363636374474 0.800000011921 1.0 0.0 1.0
+0.454545468092 0.40000000596 1.0 0.0 1.0
+0.54545456171 0.0 1.0 0.0 1.0
+0.636363625526 0.0 1.0 0.40000000596 1.0
+0.727272748947 0.0 1.0 0.800000011921 1.0
+0.818181872368 0.0 0.800000011921 1.0 1.0
+0.909090936184 0.0 0.40000000596 1.0 1.0
+1.0 1.0 0.0 0.0 1.0
+
+
+[Transfer Function]
+InvGrayscale
+13
+2
+0.0 1.0 1.0 1.0 1.0
+1.0 0.0 0.0 0.0 1.0
+
+
+[Transfer Function]
+InvBlackBody
+14
+13
+0.0 1.0 1.0 1.0 1.0
+0.0833333358169 1.0 1.0 0.705882370472 1.0
+0.166666671634 1.0 0.96862745285 0.470588237047 1.0
+0.25 1.0 0.89411765337 0.313725501299 1.0
+0.333333343267 1.0 0.800000011921 0.215686276555 1.0
+0.416666686535 1.0 0.639215707779 0.0784313753247 1.0
+0.5 1.0 0.470588237047 0.0 1.0
+0.58333337307 0.901960790157 0.278431385756 0.0 1.0
+0.666666686535 0.784313738346 0.160784319043 0.0 1.0
+0.75 0.600000023842 0.0705882385373 0.0 1.0
+0.83333337307 0.40000000596 0.00784313771874 0.0 1.0
+0.916666686535 0.203921571374 0.0 0.0 1.0
+1.0 0.0 0.0 0.0 1.0
+
+
+[Transfer Function]
+BlackBody
+15
+13
+0.0 0.0 0.0 0.0 1.0
+0.0833333358169 0.203921571374 0.0 0.0 1.0
+0.166666671634 0.40000000596 0.00784313771874 0.0 1.0
+0.25 0.600000023842 0.0705882385373 0.0 1.0
+0.333333343267 0.784313738346 0.160784319043 0.0 1.0
+0.416666686535 0.901960790157 0.278431385756 0.0 1.0
+0.5 1.0 0.470588237047 0.0 1.0
+0.58333337307 1.0 0.639215707779 0.0784313753247 1.0
+0.666666686535 1.0 0.800000011921 0.215686276555 1.0
+0.75 1.0 0.89411765337 0.313725501299 1.0
+0.83333337307 1.0 0.96862745285 0.470588237047 1.0
+0.916666686535 1.0 1.0 0.705882370472 1.0
+1.0 1.0 1.0 1.0 1.0
+
+
+[Transfer Function]
+GreyScale
+16
+2
+0.0 0.0 0.0 0.0 1.0
+1.0 1.0 1.0 1.0 1.0
+
+
+[currentHistogram]
+0
+
+[currentParticleHistogram]
+0
+
 [Histogram]
 volume
 0
 1
-300.0 2100.0
-300.0 2100.0
-288.0 2088.0
+0 0
+0 100
+0.0 0.0
 0
 
 
@@ -193,9 +307,9 @@
 x
 0
 0
-4.07959487347e-06 0.0587819218636
-4.07959487347e-06 0.0587819218636
-0.0 0.0587778422687
+0 0
+0 100
+0.0 0.0
 1
 
 
@@ -203,9 +317,9 @@
 y
 1
 0
--0.0613283030689 0.0587040632963
--0.0613283030689 0.0587040632963
--0.0612165068462 0.0576155358553
+0 0
+0 100
+0.0 0.0
 2
 
 
@@ -213,9 +327,9 @@
 z
 2
 0
-3.517361165e-06 0.0709128901362
-3.517361165e-06 0.0709128901362
-0.0 0.0709093727751
+0 0
+0 100
+0.0 0.0
 3
 
 
@@ -223,9 +337,9 @@
 p.mass
 3
 0
-3.00736237129e-12 9.78749994829e-07
-3.00736237129e-12 9.78749994829e-07
-0.0 9.78746987466e-07
+0 0
+0 100
+0.0 0.0
 4
 
 
@@ -233,9 +347,9 @@
 p.temperature
 4
 0
-17.9502124786 5116.43701172
-17.9502124786 5116.43701172
-0.0 5098.48679924
+0 0
+0 100
+0.0 0.0
 5
 
 
@@ -243,9 +357,9 @@
 p.stress Trace/3
 5
 0
--23199981568.0 13832486912.0
--23199981568.0 13832486912.0
--22960130457.6 13702013337.6
+0 0
+0 100
+0.0 0.0
 6
 
 
@@ -253,9 +367,9 @@
 Radius from p.volume
 6
 0
-2.95434688269e-06 0.000362312624929
-2.95434688269e-06 0.000362312624929
-0.0 0.000359358278047
+0 0
+0 100
+0.0 0.0
 8
 
 
@@ -263,12 +377,18 @@
 Material Index
 7
 0
-0.0 1.0
-0.0 1.0
-0.0 1.0
+0 0
+0 100
+0.0 0.0
 9
 
 
+[Eye]
+0.340429008007 0.161851003766 -0.441882014275
+0.0411402992904 0.0475210994482 0.0508046001196
+-0.0893697962165 0.980803906918 0.173310980201
+12.0038995743 12.0038995743
+
 [Scene Properties]
 300.0
 2100.0
@@ -276,9 +396,9 @@
 6
 0.001
 4
-8
--0.49600000000000000000 -0.49600000000000000000 -0.49600000000000000000
-0.49600000000000000000 0.49600000000000000000 0.49600000000000000000
+4
+-0.496 -0.496 -0.496 
+0.496 0.496 0.496 
 1
 /home/sci/brownlee/Data-Explosion/vol/temp_CC_M02_0002.nrrd
 1

Modified: trunk/scenes/csafe/python/csafe_scene.py
==============================================================================
--- trunk/scenes/csafe/python/csafe_scene.py    (original)
+++ trunk/scenes/csafe/python/csafe_scene.py    Sat Dec 20 19:56:13 2008
@@ -137,7 +137,7 @@
         self.Bind(wx.EVT_MENU, self.Menu202, id=202)
         self.Bind(wx.EVT_MENU, self.Menu107, id=107)
         self.Bind(wx.EVT_MENU, self.Menu108, id=108)
-        self.Bind(wx.EVT_MENU, self.Menu109, id=109)
+        self.Bind(wx.EVT_MENU, self.MenuQuit, id=109)
         self.Bind(wx.EVT_MENU, self.Menu203, id=203)
         self.Bind(wx.EVT_MENU, self.Menu204, id=204)
         self.Bind(wx.EVT_MENU, self.Menu110, id=110)
@@ -147,6 +147,7 @@
         self.Bind(wx.EVT_MENU, self.ShowHelp,            id=ZOOM_HELP_ID)
         self.Bind(wx.EVT_MENU, self.ShowHelp,            id=COLORMAP_HELP_ID)
         self.Bind(wx.EVT_SIZE, self.OnResize)
+        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
 
         self.SetBackgroundColour(self.scene.bgColor)
 
@@ -287,8 +288,14 @@
             Configuration.WriteNRRDList(self.scene, path)
         
     ################ Quit #################
-    def Menu109(self, e):
-        exit()
+    def MenuQuit(self, e):
+        self.Close()
+
+    ################ OnCloseWindow #################
+    def OnCloseWindow(self, evt):
+        self.scene.mantaApp.frame.ShutdownEngine()
+        self.scene.mantaApp.frame.Destroy()
+        self.Destroy()
 
     ################ Add/Remove Files #################
     def Menu201(self, evt):


  • [Manta] r2362 - trunk/scenes/csafe/python, brownlee, 12/20/2008

Archive powered by MHonArc 2.6.16.

Top of page