コード例 #1
0
ファイル: imagery.py プロジェクト: rromanchuk/OverlayEditor
    def initplacement(self, tls, x, y, level):

        key = (x, y, level)
        if key in self.placementcache:
            return  # was created while this task was queued

        (name, url, minsize) = self.provider_url(*key)
        filename = self.filecache.fetch(self.session, name, url, minsize)
        if not filename:
            # Couldn't fetch image
            if filename is False:  # Definitively unavailable
                self.placementcache[key] = False
            self.canvas.Refresh()  # Probably wanting to know this
            return

        try:
            if __debug__: clock = time.clock()
            texdata = self.canvas.vertexcache.texcache.get(filename,
                                                           alpha=False,
                                                           wrap=False,
                                                           downsample=False,
                                                           fixsize=True,
                                                           defer=True)
        except:
            if __debug__: print_exc()
            self.placementcache[key] = False  # Couldn't load image
            self.canvas.Refresh()  # Probably wanting to know this
            return

        # Make a new placement
        (north, west) = self.xy2latlon(x, y, level)
        (south, east) = self.xy2latlon(x + 1, y + 1, level)
        placement = DrapedImage(name, 65535, [[
            Node([west, north, 0, 1]),
            Node([east, north, 1, 1]),
            Node([east, south, 1, 0]),
            Node([west, south, 0, 0])
        ]])
        placement.load(self.canvas.lookup, self.canvas.defs,
                       self.canvas.vertexcache)
        if isinstance(texdata, tuple):
            placement.texdata = texdata
        else:
            placement.definition.texture = texdata  # already in the cache
        if __debug__: clock = time.clock()
        placement.layout(self.tile, tls=tls)
        if not placement.dynamic_data.size:
            if __debug__:
                print "DrapedImage layout failed for %s - no tris" % placement.name
            placement = False
        else:
            if __debug__:
                print "%6.3f time in imagery read & layout for %s" % (
                    time.clock() - clock, placement.name)
            self.canvas.Refresh(
            )  # Probably wanting to display this - will be allocated during OnPaint
        self.placementcache[key] = placement
        return
コード例 #2
0
ファイル: imagery.py プロジェクト: Marginal/OverlayEditor
    def initplacement(self, tls, x, y, level):

        key = (x, y, level)
        if key in self.placementcache:
            return	# was created while this task was queued

        (name, url, minsize) = self.provider_url(*key)
        filename = self.filecache.fetch(self.session, name, url, minsize)
        if not filename:
            # Couldn't fetch image
            if filename is False:		# Definitively unavailable
                self.placementcache[key] = False
            self.canvas.Refresh()		# Probably wanting to know this
            return

        try:
            if __debug__: clock=time.clock()
            texdata = self.canvas.vertexcache.texcache.get(filename, alpha=False, wrap=False, downsample=False, fixsize=True, defer=True)
        except:
            if __debug__: print_exc()
            self.placementcache[key] = False	# Couldn't load image
            self.canvas.Refresh()		# Probably wanting to know this
            return

        # Make a new placement
        (north,west) = self.xy2latlon(x, y, level)
        (south,east) = self.xy2latlon(x+1, y+1, level)
        placement = DrapedImage(name, 65535, [[Node([west, north, 0, 1]),
                                               Node([east, north, 1, 1]),
                                               Node([east, south, 1, 0]),
                                               Node([west, south, 0, 0])]])
        placement.load(self.canvas.lookup, self.canvas.defs, self.canvas.vertexcache)
        if isinstance(texdata, tuple):
            placement.texdata = texdata
        else:
            placement.definition.texture = texdata	# already in the cache
        if __debug__: clock=time.clock()
        placement.layout(self.tile, tls=tls)
        if not placement.dynamic_data.size:
            if __debug__: print "DrapedImage layout failed for %s - no tris" % placement.name
            placement = False
        else:
            if __debug__: print "%6.3f time in imagery read & layout for %s" % (time.clock()-clock, placement.name)
            self.canvas.Refresh()	# Probably wanting to display this - will be allocated during OnPaint
        self.placementcache[key] = placement
        return