Browse Source

wxNviz: change in z-exag behaviour

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@47361 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 13 years ago
parent
commit
ff7a23cf0f
2 changed files with 11 additions and 10 deletions
  1. 9 10
      gui/wxpython/gui_modules/nviz_mapdisp.py
  2. 2 0
      gui/wxpython/gui_modules/preferences.py

+ 9 - 10
gui/wxpython/gui_modules/nviz_mapdisp.py

@@ -604,8 +604,10 @@ class GLWindow(MapWindow, glcanvas.GLCanvas):
                               data['persp']['value'],
                               data['twist']['value'])
         
+        ## multiple z-exag value from slider by original value computed in ogsf so it scales
+        ## correctly with maps of different height ranges        
         if event and event.zExag and 'value' in data['z-exag']:
-            self._display.SetZExag(data['z-exag']['value'])
+            self._display.SetZExag(self.iview['z-exag']['original'] * data['z-exag']['value'])
         if self.iview['focus']['x'] != -1:
             self._display.SetFocus(self.iview['focus']['x'], self.iview['focus']['y'],
                                    self.iview['focus']['z'])
@@ -1256,21 +1258,18 @@ class GLWindow(MapWindow, glcanvas.GLCanvas):
 
     def ResetView(self):
         """!Reset to default view"""
-        self.view['z-exag']['value'], \
+        self.iview['z-exag']['original'], \
             self.iview['height']['value'], \
             self.iview['height']['min'], \
             self.iview['height']['max'] = self._display.SetViewDefault()
+            
+        ## set initial z-exag value at 1X    
+        self.view['z-exag']['value'] = 1.0
         
         self.view['z-exag']['min'] = UserSettings.Get(group = 'nviz', key = 'view',
-                                                      subkey = ('z-exag', 'min'))
+                                                      subkey = ('z-exag', 'min'))        
         zexagMax = UserSettings.Get(group = 'nviz', key = 'view',
-                                    subkey = ('z-exag', 'max'))
-        if zexagMax < self.view['z-exag']['value']:
-            self.view['z-exag']['max'] = self.view['z-exag']['value']
-        elif self.view['z-exag']['value'] < 1:
-            self.view['z-exag']['max'] = 10 * self.view['z-exag']['value']
-        else:
-            self.view['z-exag']['max'] = zexagMax
+                                    subkey = ('z-exag', 'max'))        
         
         self.view['position']['x'] = UserSettings.Get(group = 'nviz', key = 'view',
                                                  subkey = ('position', 'x'))

+ 2 - 0
gui/wxpython/gui_modules/preferences.py

@@ -709,6 +709,8 @@ class Settings:
         self.internalSettings['nviz']['view']['persp']['max'] = 100
         self.internalSettings['nviz']['view']['height'] = {}
         self.internalSettings['nviz']['view']['height']['value'] = -1
+        self.internalSettings['nviz']['view']['z-exag'] = {}
+        self.internalSettings['nviz']['view']['z-exag']['original'] = 1
         self.internalSettings['nviz']['view']['focus'] = {}
         self.internalSettings['nviz']['view']['focus']['x'] = -1
         self.internalSettings['nviz']['view']['focus']['y'] = -1