Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] r2390 - in trunk: Model/Materials scenes/csafe/python


Chronological Thread 
  • From:
  • To:
  • Subject: [Manta] r2390 - in trunk: Model/Materials scenes/csafe/python
  • Date: Thu, 19 Mar 2009 07:51:21 -0600 (MDT)

Author: brownlee
Date: Thu Mar 19 07:51:19 2009
New Revision: 2390

Modified:
   trunk/Model/Materials/Volume.cc
   trunk/scenes/csafe/python/Histogram.py
   trunk/scenes/csafe/python/SceneInfo.py
   trunk/scenes/csafe/python/csafe_scene.py
Log:
updating measurements frame with histogram, adding reset button, fixing 
rainbow colormap

Modified: trunk/Model/Materials/Volume.cc
==============================================================================
--- trunk/Model/Materials/Volume.cc     (original)
+++ trunk/Model/Materials/Volume.cc     Thu Mar 19 07:51:19 2009
@@ -48,18 +48,19 @@
     case Rainbow:
       {
         float p = 1.0f/11.0f;
-        _slices.push_back(ColorSlice(p*11, RGBAColor(Color(RGB(0, 0, 1)), 
1)));
-        _slices.push_back(ColorSlice(p*10, RGBAColor(Color(RGB(0, 
0.40000001, 1)), 1)));
-        _slices.push_back(ColorSlice(p*9, RGBAColor(Color(RGB(0, 0.80000001, 
1)), 1)));
-        _slices.push_back(ColorSlice(p*8, RGBAColor(Color(RGB(0, 1, 
0.80000001)), 1)));
-        _slices.push_back(ColorSlice(p*7, RGBAColor(Color(RGB(0, 1, 
0.40000001)), 1)));
-        _slices.push_back(ColorSlice(p*6, RGBAColor(Color(RGB(0, 1, 0)), 
1)));
-        _slices.push_back(ColorSlice(p*5, RGBAColor(Color(RGB(0.40000001, 1, 
0)), 1)));
-        _slices.push_back(ColorSlice(p*4, RGBAColor(Color(RGB(0.80000001, 1, 
0)), 1)));
-        _slices.push_back(ColorSlice(p*3, RGBAColor(Color(RGB(1, 0.91764706, 
0)), 1)));
-        _slices.push_back(ColorSlice(p*2, RGBAColor(Color(RGB(1, 0.80000001, 
0)), 1)));
-        _slices.push_back(ColorSlice(p*1, RGBAColor(Color(RGB(1, 0.40000001, 
0)), 1)));
         _slices.push_back(ColorSlice(p*0, RGBAColor(Color(RGB(1, 0, 0)), 
1)));
+        _slices.push_back(ColorSlice(p*1, RGBAColor(Color(RGB(1, 0.40000001, 
0)), 1)));
+        _slices.push_back(ColorSlice(p*2, RGBAColor(Color(RGB(1, 0.80000001, 
0)), 1)));
+        _slices.push_back(ColorSlice(p*3, RGBAColor(Color(RGB(1, 0.91764706, 
0)), 1)));
+        _slices.push_back(ColorSlice(p*4, RGBAColor(Color(RGB(0.80000001, 1, 
0)), 1)));
+        _slices.push_back(ColorSlice(p*5, RGBAColor(Color(RGB(0.40000001, 1, 
0)), 1)));
+        _slices.push_back(ColorSlice(p*6, RGBAColor(Color(RGB(0, 1, 0)), 
1)));
+        
+        _slices.push_back(ColorSlice(p*7, RGBAColor(Color(RGB(0, 1, 
0.40000001)), 1)));
+        _slices.push_back(ColorSlice(p*8, RGBAColor(Color(RGB(0, 1, 
0.80000001)), 1)));
+        _slices.push_back(ColorSlice(p*9, RGBAColor(Color(RGB(0, 0.80000001, 
1)), 1)));
+        _slices.push_back(ColorSlice(p*10, RGBAColor(Color(RGB(0, 
0.40000001, 1)), 1)));
+        _slices.push_back(ColorSlice(p*11, RGBAColor(Color(RGB(0, 0, 1)), 
1)));
         break;
       }
     case InvBlackBody:

Modified: trunk/scenes/csafe/python/Histogram.py
==============================================================================
--- trunk/scenes/csafe/python/Histogram.py      (original)
+++ trunk/scenes/csafe/python/Histogram.py      Thu Mar 19 07:51:19 2009
@@ -97,21 +97,30 @@
         delta = evt.GetWheelDelta()
         rot = evt.GetWheelRotation()/delta
         # zoom in if rot > 0, out if ro < 0
+        dWidth = self.zoomDMax - self.zoomDMin
+        zoomAmount = 0.75 # the smaller the more zooming
         if (rot > 0):
-            zoomAmount = 0.75 # the smaller the more zooming
             self.zooms.append( (self.zoomDMin, self.zoomDMax))
             
-            dWidth = self.zoomDMax - self.zoomDMin
             self.zoomDMax = (pos + zoomAmount*(1.0 - pos))*dWidth + 
self.zoomDMin
             self.zoomDMin = (pos - zoomAmount*pos)*dWidth + self.zoomDMin
-            tempMin = self.cropDMin
-            tempMax = self.cropDMax
-            self.Update()
-            self.cropDMin = tempMin
-            self.cropDMax = tempMax
-            self.UpdateCropToD()
+        
         if (rot < 0):
-            self.ZoomOut()
+            self.zoomDMax += (pos + zoomAmount*(1.0 - pos))*dWidth
+            self.zoomDMin -= (pos - zoomAmount*pos)*dWidth
+
+        if (self.zoomDMin < self.absoluteDMin):
+           self.zoomDMin = self.absoluteDMin
+        if (self.zoomDMax > self.absoluteDMax):
+           self.zoomDMax = self.absoluteDMax
+            
+        tempMin = self.cropDMin
+        tempMax = self.cropDMax
+        self.Update()
+        self.cropDMin = tempMin
+        self.cropDMax = tempMax
+        self.UpdateCropToD()
+        self.UpdateMeasurementsFrame()
     
     def ZoomIn(self):
         self.zooms.append( (self.zoomDMin, self.zoomDMax))
@@ -157,6 +166,7 @@
             self.draggingRight = False
             self.cropMin = pos
         self.UpdateDisplayedValues()
+        self.UpdateMeasurementsFrame()
     
     def OnLeftUp(self, evt):
         pos = float(evt.GetPosition().x - 
self.paddingW/2.0)/float(self.width)
@@ -169,6 +179,7 @@
             self.UpdateCropDMin()
             self.UpdateCropDMax()
             self.Refresh()
+            self.UpdateMeasurementsFrame()
             
         self.dragging = False
         self.selecting = False
@@ -217,6 +228,8 @@
             self.UpdateCropDMax()
             self.Refresh()
             update_clip = True
+        if (update_clip):
+            self.UpdateMeasurementsFrame()
         if (update_clip and self.parent.group != 1):  # if not the volumedata
             index = self.varIndex;
             min = float(self.cropDMin - 0.00001)
@@ -273,6 +286,10 @@
         else:
             self.cropMin = (self.cropDMin - self.dMin)/dWidth
             self.cropMax = (self.cropDMax - self.dMin)/dWidth
+
+    def UpdateMeasurementsFrame(self):
+        if self.scene.measurementsFrame != None and 
self.scene.measurementsFrame.parent.histogram == self:
+           self.scene.measurementsFrame.SendValues(self.zoomDMin, 
self.zoomDMax, self.cropDMin, self.cropDMax, self.colorDMin, self.colorDMax)
         
         
     def Update(self):
@@ -713,13 +730,16 @@
         self.SetAutoLayout(True)
     
     def OnClickMeasurements(self, evt):
-        measurementsWindow = MeasurementsFrame( self, -1, self.title + " 
Measurements",
+        if (self.scene.measurementsFrame == None):
+          self.scene.measurementsFrame = 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)
-        moveToMouse( measurementsWindow )
-        measurementsWindow.Show(True)
-        measurementsWindow.Raise()
+          moveToMouse( self.scene.measurementsFrame )
+        self.scene.measurementsFrame.Show(True)
+        self.scene.measurementsFrame.Raise()
+        self.scene.measurementsFrame.SetParent(self)
+        self.histogram.UpdateMeasurementsFrame()
 
     def SendValues(self, zoomMin, zoomMax, cropMin, cropMax, colorMin, 
colorMax):  # sent from MeasurementsFrame
         if (self.histogram.parent.group == 1):
@@ -868,14 +888,17 @@
         spin = self.cropMaxFS = self.addSpinner(panel,cropMax);
         self.Bind(FS.EVT_FLOATSPIN, self.OnCropMaxFS, self.cropMaxFS )
         
-        if (group == 0): # Particles
-            self.colorText = wx.StaticText(panel, -1, "Crop color values: ", 
(20, 10))
-            spin = self.colorMinFS =self. addSpinner(panel,colorMin);
-            self.Bind(FS.EVT_FLOATSPIN, self.OnColorMinFS, self.colorMinFS )
-            spin = self.colorMaxFS = self.addSpinner(panel,colorMax);
-            self.Bind(FS.EVT_FLOATSPIN, self.OnColorMaxFS, self.colorMaxFS )
+        #if (group == 0): # Particles
+        self.colorText = wx.StaticText(panel, -1, "Crop color values: ", 
(20, 10))
+        spin = self.colorMinFS =self. addSpinner(panel,colorMin);
+        self.Bind(FS.EVT_FLOATSPIN, self.OnColorMinFS, self.colorMinFS )
+        spin = self.colorMaxFS = self.addSpinner(panel,colorMax);
+        self.Bind(FS.EVT_FLOATSPIN, self.OnColorMaxFS, self.colorMaxFS )
         self.button = wx.Button(panel, -1, "OK")
         self.cancelB = wx.Button(panel, -1, "Cancel")
+        self.resetB = wx.Button(panel, -1, "Reset")
+        self.Bind(wx.EVT_BUTTON, self.OnReset, self.resetB)
+
         
         gbs.Add(self.zoomText, (1,0))
         gbs.Add(self.zoomMinFS, (1,1))
@@ -884,10 +907,14 @@
         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))
+        if (group == 1):
+            self.colorText.Show(False)
+            self.colorMinFS.Show(False)
+            self.colorMaxFS.Show(False)
+        gbs.Add(self.colorText, (3,0))
+        gbs.Add(self.colorMinFS, (3,1))
+        gbs.Add(self.colorMaxFS, (3,2))
+        gbs.Add(self.resetB, (4,2))
         
         vs2 = wx.BoxSizer( wx.HORIZONTAL )
         
@@ -993,8 +1020,6 @@
     def ApplyValues(self):
         zoomMin = self.zoomMinFS.GetValue()
         zoomMax = self.zoomMaxFS.GetValue()
-        cropMin = 0
-        cropMax = 0
         cropMin = self.cropMinFS.GetValue()
         cropMax = self.cropMaxFS.GetValue()
         if (self.group == 0):
@@ -1004,11 +1029,50 @@
             colorMin = cropMin
             colorMax = cropMax
         self.parent.SendValues(float(zoomMin), float(zoomMax), 
float(cropMin), float(cropMax), float(colorMin), float(colorMax))
+
+    #who to send values to.  Should have SendValues function
+    def SetParent(self,parent):
+        self.parent = parent
+        self.group = parent.group
+        self.SetTitle(parent.title)
+        if (self.group == 0):
+            self.colorMinFS.Show(True)
+            self.colorMaxFS.Show(True)
+        else:
+            self.colorMinFS.Show(False)
+            self.colorMaxFS.Show(False)
+        
+
+    def SendValues(self, zoomMin, zoomMax, cropMin, cropMax, colorMin, 
colorMax):
+        self.zoomMinFS.SetValue(zoomMin)
+        self.zoomMaxFS.SetValue(zoomMax)
+        self.cropMinFS.SetValue(cropMin)
+        self.cropMaxFS.SetValue(cropMax)
+        if (self.group == 0):
+            self.colorMinFS.SetValue(colorMin)
+            self.colorMaxFS.SetValue(colorMax)
+        self.ApplyValues()
+
+    def OnReset(self, evt):
+        zoomMin = self.parent.histogram.absoluteDMin
+        zoomMax = self.parent.histogram.absoluteDMax
+        cropMin = zoomMin
+        cropMax = zoomMax
+        colorMin = zoomMin
+        colorMax = zoomMax
+        self.zoomMinFS.SetValue(zoomMin)
+        self.zoomMaxFS.SetValue(zoomMax)
+        self.cropMinFS.SetValue(cropMin)
+        self.cropMaxFS.SetValue(cropMax)
+        if (self.group == 0):
+            self.colorMinFS.SetValue(colorMin)
+            self.colorMaxFS.SetValue(colorMax)
+        self.ApplyValues()
         
     def OnOK(self, event):
         self.ApplyValues()
         self.Show( False )
 
     def OnCloseWindow(self, event):
-        self.Destroy()
+        self.Show(False)
         

Modified: trunk/scenes/csafe/python/SceneInfo.py
==============================================================================
--- trunk/scenes/csafe/python/SceneInfo.py      (original)
+++ trunk/scenes/csafe/python/SceneInfo.py      Thu Mar 19 07:51:19 2009
@@ -44,3 +44,4 @@
                 self.currentHistogram = None
                 self.autoBuildHistograms = True
                 self.readConfiguration = False
+                self.measurementsFrame = None

Modified: trunk/scenes/csafe/python/csafe_scene.py
==============================================================================
--- trunk/scenes/csafe/python/csafe_scene.py    (original)
+++ trunk/scenes/csafe/python/csafe_scene.py    Thu Mar 19 07:51:19 2009
@@ -368,7 +368,7 @@
                       if index == self.histoGroups[i].varIndex and 
self.histoGroups[i].group == 0:
                         found = True
                     if found == False:
-                      hist = 
Histogram.HistogramGroup(self.panel,self.scene,index,name,3)
+                      hist = 
Histogram.HistogramGroup(self.panel,self.scene,index,name,5)
                       self.histoGroups.append(hist)
                     
 
@@ -557,7 +557,7 @@
             self.transferFunctions.append(self.t0)
             self.transferFunctions.append(TransferF.TransferF(self, [], 
id+1,   "InvRainbowIso", manta_new(RGBAColorMap(0))))
             self.transferFunctions.append(TransferF.TransferF(self, [], 
id+2, "InvRainbow",    manta_new(RGBAColorMap(1))))
-            self.transferFunctions.append(TransferF.TransferF(self, [], 
id+3, "Rainbow",       manta_new(RGBAColorMap(2))))
+            self.transferFunctions.append(TransferF.TransferF(self, [], 
id+3, "Rainbow",       manta_new(RGBAColorMap(1))))
             self.transferFunctions.append(TransferF.TransferF(self, [], 
id+4, "InvGrayscale",  manta_new(RGBAColorMap(3))))
             self.transferFunctions.append(TransferF.TransferF(self, [], 
id+5, "InvBlackBody",  manta_new(RGBAColorMap(4))))
             self.transferFunctions.append(TransferF.TransferF(self, [], 
id+6, "BlackBody",     manta_new(RGBAColorMap(5))))


  • [Manta] r2390 - in trunk: Model/Materials scenes/csafe/python, brownlee, 03/19/2009

Archive powered by MHonArc 2.6.16.

Top of page