def with_river(self, height): """ Carve out unsmoothed river bed """ mx, mz = height.shape mask1 = carve.make_mask((mx, mz), self.__edge_direction, self.river_width - 1, self.__seeder) mask2 = carve.make_mask((mx, mz), self.__edge_direction, self.river_width, self.__seeder) res = numpy.empty((mx, mz), height.dtype) for x in xrange(0, mx): for z in xrange(0, mz): if mask1[x, z]: res[x, z] = self.river_height elif mask2[x, z]: res[x, z] = self.river_height + 1 else: res[x, z] = height[x, z] return res
def with_valley(self, height): """ Carve out area which will slope down to river """ mx, mz = height.shape mask = carve.make_mask((mx, mz), self.__edge_direction, self.valley_width, None) res = numpy.empty((mx, mz), height.dtype) for x in xrange(0, mx): for z in xrange(0, mz): res[x, z] = self.valey_height if mask[x, z] else height[x, z] return res, mask