void TerrainImpl::avgFlatten(const Selection& selection, float intensity)
	{
		// add by 王宏张 2007-7-25
		// 计算平均高度
		float avgHeiht = 0.0f;
		for(Selection::const_iterator iter = selection.begin() ; iter != selection.end() ; ++iter)
		{
			if(size_t(iter->first.getX() + selection.getPosition().getX()) >= mInfo->getWidth()
				|| size_t(iter->first.getY() + selection.getPosition().getY()) >= mInfo->getHeight())
				continue;
			float height = mInfo->at(size_t(iter->first.getX() + selection.getPosition().getX())
				, size_t(iter->first.getY() + selection.getPosition().getY()));
			avgHeiht += height;
		}
		avgHeiht /= selection.size();

		for(Selection::const_iterator iter = selection.begin() ; iter != selection.end() ; ++iter)
		{
			if(size_t(iter->first.getX() + selection.getPosition().getX()) >= mInfo->getWidth()
				|| size_t(iter->first.getY() + selection.getPosition().getY()) >= mInfo->getHeight())
				continue;
			float& height = mInfo->at(size_t(iter->first.getX() + selection.getPosition().getX())
				, size_t(iter->first.getY() + selection.getPosition().getY()));
			height = avgHeiht; // avgFlatten算法
		}
		updateTiles(selection.getMin().getX(), selection.getMin().getY(), selection.getMax().getX(), selection.getMax().getY());
	}
	void TerrainImpl::deform(const Selection& selection, float intensity)
	{
		for(Selection::const_iterator iter = selection.begin() ; iter != selection.end() ; iter ++)
		{
			if(size_t(iter->first.getX() + selection.getPosition().getX()) >= mInfo->getWidth()
				|| size_t(iter->first.getY() + selection.getPosition().getY()) >= mInfo->getHeight())
				continue;
			float& height = mInfo->at(size_t(iter->first.getX() + selection.getPosition().getX())
				, size_t(iter->first.getY() + selection.getPosition().getY()));
			height += intensity * iter->second;
		}
		updateTiles(selection.getMin().getX(), selection.getMin().getY(), selection.getMax().getX(), selection.getMax().getY());
	}
	void TerrainImpl::moveSelection(const Selection& selection, float intensity)
	{
		// add by 王宏张 2007-7-30
		// 更新选区
		updateTiles(selection.getMin().getX(), selection.getMin().getY(), selection.getMax().getX(), selection.getMax().getY());
	}