Пример #1
0
 public void Apply_HeightSmoothing(double Ratio)
 {
     clsMouseOver.clsOverTerrain mouseOverTerrain = this.GetMouseOverTerrain();
     if (mouseOverTerrain != null)
     {
         modMath.sXY_int _int;
         clsMap.clsApplyHeightSmoothing tool = new clsMap.clsApplyHeightSmoothing {
             Map = this.Map,
             Ratio = Ratio
         };
         int num = (int) Math.Round(Math.Ceiling(modProgram.HeightBrush.Radius));
         modMath.sXY_int posNum = modProgram.HeightBrush.GetPosNum(mouseOverTerrain.Vertex);
         tool.Offset.X = modMath.Clamp_int(posNum.X - num, 0, this.Map.Terrain.TileSize.X);
         tool.Offset.Y = modMath.Clamp_int(posNum.Y - num, 0, this.Map.Terrain.TileSize.Y);
         _int.X = modMath.Clamp_int(posNum.X + num, 0, this.Map.Terrain.TileSize.X);
         _int.Y = modMath.Clamp_int(posNum.Y + num, 0, this.Map.Terrain.TileSize.Y);
         tool.AreaTileSize.X = _int.X - tool.Offset.X;
         tool.AreaTileSize.Y = _int.Y - tool.Offset.Y;
         tool.Start();
         modProgram.HeightBrush.PerformActionMapVertices(tool, mouseOverTerrain.Vertex);
         tool.Finish();
         this.Map.Update();
         this.MapView.DrawViewLater();
     }
 }
Пример #2
0
        public void Apply_HeightSmoothing(double Ratio)
        {
            clsMouseOver.clsOverTerrain MouseOverTerrain = GetMouseOverTerrain();

            if ( MouseOverTerrain == null )
            {
                return;
            }

            clsMap.clsApplyHeightSmoothing ApplyHeightSmoothing = new clsMap.clsApplyHeightSmoothing();
            ApplyHeightSmoothing.Map = Map;
            ApplyHeightSmoothing.Ratio = Ratio;
            int Radius = (int)(Math.Ceiling(App.HeightBrush.Radius));
            sXY_int PosNum = App.HeightBrush.GetPosNum(MouseOverTerrain.Vertex);
            ApplyHeightSmoothing.Offset.X = MathUtil.Clamp_int(PosNum.X - Radius, 0, Map.Terrain.TileSize.X);
            ApplyHeightSmoothing.Offset.Y = MathUtil.Clamp_int(PosNum.Y - Radius, 0, Map.Terrain.TileSize.Y);
            sXY_int PosEnd = new sXY_int();
            PosEnd.X = MathUtil.Clamp_int(PosNum.X + Radius, 0, Map.Terrain.TileSize.X);
            PosEnd.Y = MathUtil.Clamp_int(PosNum.Y + Radius, 0, Map.Terrain.TileSize.Y);
            ApplyHeightSmoothing.AreaTileSize.X = PosEnd.X - ApplyHeightSmoothing.Offset.X;
            ApplyHeightSmoothing.AreaTileSize.Y = PosEnd.Y - ApplyHeightSmoothing.Offset.Y;
            ApplyHeightSmoothing.Start();
            App.HeightBrush.PerformActionMapVertices(ApplyHeightSmoothing, MouseOverTerrain.Vertex);
            ApplyHeightSmoothing.Finish();

            Map.Update();

            MapViewControl.DrawViewLater();
        }