/[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 468 by jonathan, Wed Mar 5 18:19:13 2003 UTC revision 588 by jonathan, Tue Apr 1 15:58:02 2003 UTC
# Line 48  class MapRenderer: Line 48  class MapRenderer:
48                  the renderer's default.                  the renderer's default.
49          """          """
50          # resolution in pixel/inch          # resolution in pixel/inch
51    
52            assert(scale > 0)
53    
54          self.dc = dc          self.dc = dc
55          self.scale = scale          self.scale = scale
56          self.offset = offset          self.offset = offset
# Line 178  class MapRenderer: Line 181  class MapRenderer:
181          self.dc.DrawLines(points)          self.dc.DrawLines(points)
182    
183      def draw_point_shape(self, layer, index):      def draw_point_shape(self, layer, index):
184          p = self.projected_points(layer, index)[0]          pp = self.projected_points(layer, index)
185    
186            if len(pp) == 0: return # ignore Null Shapes which have no points
187    
188            p = pp[0]
189          radius = self.resolution * 5          radius = self.resolution * 5
190          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)
191    
# Line 226  class ScreenRenderer(MapRenderer): Line 233  class ScreenRenderer(MapRenderer):
233      # On the screen we want to see only visible layers by default      # On the screen we want to see only visible layers by default
234      honor_visibility = 1      honor_visibility = 1
235            
236      def RenderMap(self, map, region, selected_layer, selected_shape):      def RenderMap(self, map, region, selected_layer, selected_shapes):
237          """Render the map.          """Render the map.
238    
239          Only the given region (a tuple in window coordinates as returned          Only the given region (a tuple in window coordinates as returned
240          by a wxrect's asTuple method) needs to be redrawn. Highlight the          by a wxrect's asTuple method) needs to be redrawn. Highlight the
241          shape with id selected_shape in the selected_layer.          shapes given by the ids in selected_shapes in the
242            selected_layer.
243          """          """
244          self.update_region = region          self.update_region = region
245          self.selected_layer = selected_layer          self.selected_layer = selected_layer
246          self.selected_shape = selected_shape          self.selected_shapes = selected_shapes
247          self.render_map(map)          self.render_map(map)
248    
249      def draw_shape_layer(self, layer):      def draw_shape_layer(self, layer):
250          MapRenderer.draw_shape_layer(self, layer)          MapRenderer.draw_shape_layer(self, layer)
251          if layer is self.selected_layer and self.selected_shape is not None:          if layer is self.selected_layer and self.selected_shapes:
252              pen = wxPen(wxBLACK, 3, wxSOLID)              pen = wxPen(wxBLACK, 3, wxSOLID)
253              brush = wxBrush(wxBLACK, wxCROSS_HATCH)              brush = wxBrush(wxBLACK, wxCROSS_HATCH)
254                
255              shapetype = layer.ShapeType()              shapetype = layer.ShapeType()
             index = self.selected_shape  
256              if shapetype == SHAPETYPE_POLYGON:              if shapetype == SHAPETYPE_POLYGON:
257                  self.draw_polygon_shape(layer, index, pen, brush)                  func = self.draw_polygon_shape
258                    args = (pen, brush)
259              elif shapetype == SHAPETYPE_ARC:              elif shapetype == SHAPETYPE_ARC:
260                  self.draw_polygon_shape(layer, index, pen, None)                  func = self.draw_polygon_shape
261              else:                  args = (pen, None)
262                elif shapetype == SHAPETYPE_POINT:
263                  self.dc.SetBrush(brush)                  self.dc.SetBrush(brush)
264                  self.dc.SetPen(pen)                  self.dc.SetPen(pen)
265                  if shapetype == SHAPETYPE_POINT:                  func = self.draw_point_shape
266                      self.draw_point_shape(layer, index)                  args = ()
267                  else:              else:
268                      raise TypeError(_("Unhandled shape type %s") % shapetype)                  raise TypeError(_("Unhandled shape type %s") % shapetype)
269    
270                for index in self.selected_shapes:
271                    func(layer, index, *args)
272    
273      def layer_ids(self, layer):      def layer_ids(self, layer):
274          """Return the shapeids covered by the region that has to be redrawn          """Return the shapeids covered by the region that has to be redrawn

Legend:
Removed from v.468  
changed lines
  Added in v.588

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26