/[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 2514 by frank, Mon Jan 3 16:21:17 2005 UTC revision 2551 by jonathan, Thu Jan 27 14:19:41 2005 UTC
# Line 22  from wxPython.wx import wxPoint, wxRect, Line 22  from wxPython.wx import wxPoint, wxRect,
22      wxTRANSPARENT_PEN, wxTRANSPARENT_BRUSH, \      wxTRANSPARENT_PEN, wxTRANSPARENT_BRUSH, \
23      wxBLACK_PEN, wxBLACK, wxSOLID, wxCROSS_HATCH, wxSWISS, wxNORMAL, \      wxBLACK_PEN, wxBLACK, wxSOLID, wxCROSS_HATCH, wxSWISS, wxNORMAL, \
24      wxBitmapFromImage, wxImageFromStream, wxBITMAP_TYPE_BMP, \      wxBitmapFromImage, wxImageFromStream, wxBITMAP_TYPE_BMP, \
25      wxBITMAP_TYPE_JPEG, wxBITMAP_TYPE_PNG, wxBITMAP_TYPE_TIF, wxBITMAP_TYPE_GIF      wxBITMAP_TYPE_JPEG, wxBITMAP_TYPE_PNG, wxBITMAP_TYPE_TIF, \
26        wxBITMAP_TYPE_GIF, wxEmptyImage, wxMask
27    
28  from wxproj import draw_polygon_shape, draw_polygon_init  from wxproj import draw_polygon_shape, draw_polygon_init
29    
# Line 38  import Thuban.Model.resource Line 39  import Thuban.Model.resource
39    
40  from baserenderer import BaseRenderer  from baserenderer import BaseRenderer
41    
42    from math import floor
43    
44    from types import StringType
45    
46    
47  # Map the strings used for the format parameter of the draw_raster_data  # Map the strings used for the format parameter of the draw_raster_data
48  # method to the appropriate wxWindows constants  # method to the appropriate wxWindows constants
# Line 99  class MapRenderer(BaseRenderer): Line 104  class MapRenderer(BaseRenderer):
104          return wxFont(int(round(self.resolution * 10)), wxSWISS, wxNORMAL,          return wxFont(int(round(self.resolution * 10)), wxSWISS, wxNORMAL,
105                        wxNORMAL)                        wxNORMAL)
106    
107      def draw_raster_data(self, data, format = 'BMP'):      def draw_raster_data(self, x,y, data, format = 'BMP'):
108          stream = cStringIO.StringIO(data)  
109          image = wxImageFromStream(stream, raster_format_map[format])          mask = None
110            if format == 'RAW':
111                image = wxEmptyImage(data[0], data[1])
112                image.SetData(data[2][0])
113                if data[2][1] is not None:
114                    mask = wxEmptyImage(data[0], data[1])
115                    mask.SetData(data[2][1])
116            else:
117                stream = cStringIO.StringIO(data[2][0])
118                image = wxImageFromStream(stream, raster_format_map[format])
119                if data[2][1] is not None:
120                    stream = cStringIO.StringIO(data[2][1])
121                    mask = wxImageFromStream(stream, raster_format_map[format])
122    
123          bitmap = wxBitmapFromImage(image)          bitmap = wxBitmapFromImage(image)
124          self.dc.DrawBitmap(bitmap, 0, 0)  
125            if mask is None:
126                self.dc.DrawBitmap(bitmap, int(round(x)), int(round(y)), False)
127            else:
128                # if we are given a mask object, try to pass it to SetMaskColour,
129                # otherwise assume it's a mask image
130                try:
131                    bitmap.SetMask(wxMask(wxBitmapFromImage(mask, 1)))
132                    self.dc.DrawBitmap(bitmap, int(round(x)), int(round(y)), True)
133                except (TypeError):
134                    # implement using a mask image
135                    raise NotImplementedError
136    
137    
138  class ScreenRenderer(MapRenderer):  class ScreenRenderer(MapRenderer):

Legend:
Removed from v.2514  
changed lines
  Added in v.2551

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26