def Save( self, dlg, minX, minY, subRgn ): "save the region to SC4File" print "saving" saved = True for i,city in enumerate( self.allCities ): dlg.Update( i, "Please wait while saving the region"+"\nSaving "+" City - New city(%03d-%03d).sc4"%( city.cityXPos, city.cityYPos ) ) citySave = CityProxy( self.waterLevel, city.cityXPos-minX, city.cityYPos-minY, city.cityXSize, city.cityYSize ) citySave.heightMap = Numeric.zeros( (citySave.ySize, citySave.xSize), Numeric.uint16 ) citySave.heightMap[::,::] = self.height[ citySave.yPos+subRgn[1]:citySave.yPos+subRgn[1]+citySave.ySize,citySave.xPos+subRgn[0]:citySave.xPos+subRgn[0]+citySave.xSize ] citySave.heightMap = citySave.heightMap.astype( Numeric.float32 ) / Numeric.asarray( 10, Numeric.float32 ) x1 = citySave.xPos y1 = citySave.yPos x2 = x1 + citySave.xSize y2 = y1 + citySave.ySize print x1,y1,x2,y2 print citySave.yPos+subRgn[2],'to',citySave.yPos+subRgn[2]+citySave.ySize,'and',citySave.xPos+subRgn[0],'to',citySave.xPos+subRgn[0]+citySave.xSize lightDir = Normalize( (1, -5, -1) ) rawRGB = tools3D.onePassColors( False, citySave.heightMap.shape, self.waterLevel, citySave.heightMap, GradientReader.paletteWater, GradientReader.paletteLand, lightDir ) print citySave.heightMap.shape,len(rawRGB) try: if not Save( citySave, self.folder,rawRGB,self.waterLevel ): saved = False except: print 'problem while saving',citySave.fileName,city.cityXPos,city.cityYPos,city.cityXSize,city.cityYSize saved = False citySave.heightMap = None return saved
def ComputeOneRGB(bLight, height, waterLevel, region): lightDir = Normalize((1, -5, -1)) rawRGB = tools3D.onePassColors(bLight, height.shape, waterLevel, height, GradientReader.paletteWater, GradientReader.paletteLand, lightDir) rgb = Numeric.fromstring(rawRGB, Numeric.int8) rgb = Numeric.reshape(rgb, (height.shape[0], height.shape[1], 3)) return rgb
def Save(self, dlg, minX, minY, subRgn): "save the region to SC4File" print "saving" saved = True for i, city in enumerate(self.allCities): dlg.Update( i, "Please wait while saving the region" + "\nSaving " + " City - New city(%03d-%03d).sc4" % (city.cityXPos, city.cityYPos)) citySave = CityProxy(self.waterLevel, city.cityXPos - minX, city.cityYPos - minY, city.cityXSize, city.cityYSize) citySave.heightMap = Numeric.zeros( (citySave.ySize, citySave.xSize), Numeric.uint16) citySave.heightMap[::, ::] = self.height[citySave.yPos + subRgn[1]:citySave.yPos + subRgn[1] + citySave.ySize, citySave.xPos + subRgn[0]:citySave.xPos + subRgn[0] + citySave.xSize] citySave.heightMap = citySave.heightMap.astype( Numeric.float32) / Numeric.asarray(10, Numeric.float32) x1 = citySave.xPos y1 = citySave.yPos x2 = x1 + citySave.xSize y2 = y1 + citySave.ySize print x1, y1, x2, y2 print citySave.yPos + subRgn[2], 'to', citySave.yPos + subRgn[ 2] + citySave.ySize, 'and', citySave.xPos + subRgn[ 0], 'to', citySave.xPos + subRgn[0] + citySave.xSize lightDir = Normalize((1, -5, -1)) rawRGB = tools3D.onePassColors(False, citySave.heightMap.shape, self.waterLevel, citySave.heightMap, GradientReader.paletteWater, GradientReader.paletteLand, lightDir) print citySave.heightMap.shape, len(rawRGB) try: if not Save(citySave, self.folder, rawRGB, self.waterLevel): saved = False except: print 'problem while saving', citySave.fileName, city.cityXPos, city.cityYPos, city.cityXSize, city.cityYSize saved = False citySave.heightMap = None return saved
def ComputeOneRGB( bLight ,height, waterLevel, region): lightDir = Normalize( (1, -5, -1) ) rawRGB = tools3D.onePassColors( bLight, height.shape, waterLevel, height, GradientReader.paletteWater, GradientReader.paletteLand, lightDir ) rgb = Numeric.fromstring( rawRGB, Numeric.int8 ) rgb = Numeric.reshape( rgb, ( height.shape[0], height.shape[1], 3 ) ) return rgb