Browse Source

wxNviz: isosurfaces - remove emission attribute, floatspin instead of spinctrl if available

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@47008 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 14 years ago
parent
commit
50a94faec3

+ 3 - 7
gui/wxpython/gui_modules/nviz_mapdisp.py

@@ -1177,7 +1177,7 @@ class GLWindow(MapWindow, glcanvas.GLCanvas):
         isosurfId = 0
         for isosurf in data['isosurface']:
             for attrb in ('color', 'mask',
-                          'transp', 'shine', 'emit'):
+                          'transp', 'shine'):
                 if attrb not in isosurf or \
                         'update' not in isosurf[attrb]:
                     continue
@@ -1191,9 +1191,7 @@ class GLWindow(MapWindow, glcanvas.GLCanvas):
                         # TODO: broken in NVIZ
                         self._display.UnsetIsosurfaceMask(id, isosurfId)
                     elif attrb ==  'transp':
-                        self._display.UnsetIsosurfaceTransp(id, isosurfId)
-                    elif attrb ==  'emit':
-                        self._display.UnsetIsosurfaceEmit(id, isosurfId) 
+                        self._display.UnsetIsosurfaceTransp(id, isosurfId) 
                 else:
                     if type(value) ==  type('') and \
                             len(value) <=  0: # ignore empty values (TODO: warning)
@@ -1207,9 +1205,7 @@ class GLWindow(MapWindow, glcanvas.GLCanvas):
                     elif attrb ==  'transp':
                         self._display.SetIsosurfaceTransp(id, isosurfId, map, str(value)) 
                     elif attrb ==  'shine':
-                        self._display.SetIsosurfaceShine(id, isosurfId, map, str(value)) 
-                    elif attrb ==  'emit':
-                        self._display.SetIsosurfaceEmit(id, isosurfId, map, str(value)) 
+                        self._display.SetIsosurfaceShine(id, isosurfId, map, str(value))  
                 isosurf[attrb].pop('update')
             isosurfId +=  1
         

+ 31 - 14
gui/wxpython/gui_modules/nviz_tools.py

@@ -40,6 +40,10 @@ except ImportError: # if it's not there locally, try the wxPython lib.
         import wx.lib.agw.foldpanelbar as fpb
     except ImportError:
         import wx.lib.foldpanelbar as fpb # versions <=2.5.5.1
+try:
+    import wx.lib.agw.floatspin as fs
+except ImportError:
+    fs = None
         
 import grass.script as grass
 
@@ -1398,8 +1402,7 @@ class NvizToolWindow(FN.FlatNotebook):
                             ('color', _("Color")),
                             ('mask', _("Mask")),
                             ('transp', _("Transparency")),
-                            ('shine', _("Shininess")),
-                            ('emit', _("Emission"))):
+                            ('shine', _("Shininess"))):
             self.win['volume'][code] = {} 
             # label
             gridSizer.Add(item = wx.StaticText(parent = panel, id = wx.ID_ANY,
@@ -1448,15 +1451,28 @@ class NvizToolWindow(FN.FlatNotebook):
                     size = (200, -1)
                 else:
                     size = (65, -1)
-                value = wx.SpinCtrl(parent = panel, id = wx.ID_ANY, size = size,
-                                    initial = 0)
+                if fs:
+                    value = fs.FloatSpin(parent = panel, id = wx.ID_ANY,
+                                         size = size, increment = 0.5, value = 0)
+                    value.SetFormat("%f")
+                    value.SetDigits(1)
+                else:
+                    value = wx.SpinCtrl(parent = panel, id = wx.ID_ANY, size = size,
+                                        initial = 0)
                 if code == 'topo':
-                    value.SetRange(minVal = -1e9, maxVal = 1e9)
-                elif code in ('shine', 'transp', 'emit'):
-                    value.SetRange(minVal = 0, maxVal = 255)
+                    if fs:
+                        value.SetRange(min_val = -1e9, max_val = 1e9)
+                    else:
+                        value.SetRange(minVal = -1e9, maxVal = 1e9)
+                elif code in ('shine', 'transp'):
+                    if fs:
+                        value.SetRange(min_val = 0, max_val = 255)
+                    else:
+                        value.SetRange(minVal = 0, maxVal = 255)
+                if fs:
+                    value.Bind(fs.EVT_FLOATSPIN, self.OnVolumeIsosurfMap)
                 else:
-                    value.SetRange(minVal = 0, maxVal = 100)
-                value.Bind(wx.EVT_SPINCTRL, self.OnVolumeIsosurfMap)
+                    value.Bind(wx.EVT_SPINCTRL, self.OnVolumeIsosurfMap)
                 value.Bind(wx.EVT_TEXT, self.OnVolumeIsosurfMap)
             
             if value:
@@ -2280,9 +2296,10 @@ class NvizToolWindow(FN.FlatNotebook):
             data = self.mapWindow.GetLayerByName(name, mapType = '3d-raster', dataType = 'nviz')
             list = self.FindWindowById(self.win['volume']['isosurfs'])
             id = list.GetSelection()
-            data[nvizType]['isosurface'][id][attrb] = { 'map' : useMap,
-                                                        'value' : str(value),
-                                                        'update' : None }
+            if id != -1:
+                data[nvizType]['isosurface'][id][attrb] = { 'map' : useMap,
+                                                            'value' : str(value),
+                                                            'update' : None }
         
         # update properties
         event = wxUpdateProperties(data = data)
@@ -2941,7 +2958,7 @@ class NvizToolWindow(FN.FlatNotebook):
         # collect properties
         isosurfData = {}
         for attrb in ('topo', 'color', 'mask',
-                      'transp', 'shine', 'emit'):
+                      'transp', 'shine'):
             if attrb == 'topo':
                 isosurfData[attrb] = {}
                 win = self.FindWindowById(self.win['volume'][attrb]['const'])
@@ -3562,7 +3579,7 @@ class NvizToolWindow(FN.FlatNotebook):
         # isosurface attributes
         #
         for attrb in ('topo', 'color', 'mask',
-                     'transp', 'shine', 'emit'):
+                     'transp', 'shine'):
             # check required first
             if attrb == 'topo':
                 self.FindWindowById(self.win['volume'][attrb]['const']).SetValue(0)

+ 2 - 2
gui/wxpython/gui_modules/wxnviz.py

@@ -1084,7 +1084,7 @@ class Nviz(object):
         return self.SetIsosurfaceAttr(id, isosurf_id, ATT_SHINE, map, value)
     
     def SetIsosurfaceEmit(self, id, isosurf_id, map, value):
-        """!Set isosurface emission
+        """!Set isosurface emission (currently unused)
         
         @param id volume id
         @param isosurf_id isosurface id (0 - MAX_ISOSURFS)
@@ -1164,7 +1164,7 @@ class Nviz(object):
         return self.UnsetIsosurfaceAttr(id, isosurf_id, ATT_TRANSP)
     
     def UnsetIsosurfaceEmit(self, id, isosurf_id):
-        """!Unset isosurface emission
+        """!Unset isosurface emission (currently unused)
         
         @param id volume id
         @param isosurf_id isosurface id (0 - MAX_ISOSURFS)