/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/renderer.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/renderer.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1343 by jonathan, Tue Jul 1 16:11:08 2003 UTC revision 1481 by bh, Thu Jul 24 17:52:59 2003 UTC
# Line 75  class MapRenderer: Line 75  class MapRenderer:
75          self.map = map          self.map = map
76          seenRaster = True          seenRaster = True
77    
78          if self.scale == 0:          self.dc.BeginDrawing()
             return  
79    
80          #          #
81          # This is only a good optimization if there is only one          # This is only a good optimization if there is only one
# Line 104  class MapRenderer: Line 103  class MapRenderer:
103    
104          self.draw_label_layer(map.LabelLayer())          self.draw_label_layer(map.LabelLayer())
105    
106            self.dc.EndDrawing()
107    
108      def draw_shape_layer(self, layer):      def draw_shape_layer(self, layer):
109          scale = self.scale          scale = self.scale
110          offx, offy = self.offset          offx, offy = self.offset
# Line 119  class MapRenderer: Line 120  class MapRenderer:
120          old_prop = None          old_prop = None
121          old_group = None          old_group = None
122          lc = layer.GetClassification()          lc = layer.GetClassification()
123          field = lc.GetField()          field = layer.GetClassificationColumn()
124          defaultGroup = lc.GetDefaultGroup()          defaultGroup = lc.GetDefaultGroup()
125    
126    
         if shapetype != SHAPETYPE_POINT:  
             polygon_render_param = self.polygon_render_param(layer)  
127    
128          if shapetype == SHAPETYPE_POINT:          if shapetype == SHAPETYPE_POINT:
129              draw_func = lambda i: \              draw_func = self.draw_point_shape
130                     self.draw_point_shape(layer, i)              draw_func_param = layer
131          else:          else:
132              draw_func = lambda i: \              draw_func = draw_polygon_shape
133                     self.draw_polygon_shape(polygon_render_param, i, pen, brush)              draw_func_param = self.polygon_render_param(layer)
134    
135          table = layer.ShapeStore().Table()          table = layer.ShapeStore().Table()
136          for i in self.layer_ids(layer):          for i in self.layer_ids(layer):
# Line 177  class MapRenderer: Line 176  class MapRenderer:
176                          color = Color2wxColour(stroke)                          color = Color2wxColour(stroke)
177                          pen = wxPen(color, stroke_width, wxSOLID)                          pen = wxPen(color, stroke_width, wxSOLID)
178    
179                      if shapetype == SHAPETYPE_POINT:              draw_func(draw_func_param, i, pen, brush)
                         self.dc.SetBrush(brush)  
                         self.dc.SetPen(pen)  
   
             draw_func(i)  
180    
181      def draw_raster_layer(self, layer):      def draw_raster_layer(self, layer):
182          data = None          data = None
# Line 221  class MapRenderer: Line 216  class MapRenderer:
216                  stream = cStringIO.StringIO(data)                  stream = cStringIO.StringIO(data)
217                  image = wxImageFromStream(stream, wxBITMAP_TYPE_BMP)                  image = wxImageFromStream(stream, wxBITMAP_TYPE_BMP)
218                  bitmap = wxBitmapFromImage(image)                  bitmap = wxBitmapFromImage(image)
                 self.dc.BeginDrawing()  
219                  self.dc.DrawBitmap(bitmap, 0, 0)                  self.dc.DrawBitmap(bitmap, 0, 0)
                 self.dc.EndDrawing()  
220    
221      def layer_ids(self, layer):      def layer_ids(self, layer):
222          """Return the shape ids of the given layer that have to be drawn.          """Return the shape ids of the given layer that have to be drawn.
# Line 273  class MapRenderer: Line 266  class MapRenderer:
266          points = self.projected_points(layer, index)          points = self.projected_points(layer, index)
267          self.dc.DrawLines(points)          self.dc.DrawLines(points)
268    
269      def draw_point_shape(self, layer, index):      def draw_point_shape(self, layer, index, pen, brush):
270          pp = self.projected_points(layer, index)          pp = self.projected_points(layer, index)
271    
272          if len(pp) == 0: return # ignore Null Shapes which have no points          if len(pp) == 0: return # ignore Null Shapes which have no points
273    
274          p = pp[0]          p = pp[0]
275          radius = self.resolution * 5          radius = self.resolution * 5
276            self.dc.SetBrush(brush)
277            self.dc.SetPen(pen)
278          self.dc.DrawEllipse(p.x - radius, p.y - radius, 2*radius, 2*radius)          self.dc.DrawEllipse(p.x - radius, p.y - radius, 2*radius, 2*radius)
279    
280      def draw_label_layer(self, layer):      def draw_label_layer(self, layer):
# Line 357  class ScreenRenderer(MapRenderer): Line 352  class ScreenRenderer(MapRenderer):
352                  args = (pen, None)                  args = (pen, None)
353              elif shapetype == SHAPETYPE_POINT:              elif shapetype == SHAPETYPE_POINT:
354                  renderparam = layer                  renderparam = layer
                 self.dc.SetBrush(brush)  
                 self.dc.SetPen(pen)  
355                  func = self.draw_point_shape                  func = self.draw_point_shape
356                  args = ()                  args = (pen, brush)
357              else:              else:
358                  raise TypeError(_("Unhandled shape type %s") % shapetype)                  raise TypeError(_("Unhandled shape type %s") % shapetype)
359    
360              for index in self.selected_shapes:              for index in self.selected_shapes:
361                  func(renderparam, index, *args)                  func(renderparam, index, *args)
362    
   
363      def layer_ids(self, layer):      def layer_ids(self, layer):
364          """Return the shapeids covered by the region that has to be redrawn          """Return the shapeids covered by the region that has to be redrawn
365    

Legend:
Removed from v.1343  
changed lines
  Added in v.1481

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26