// this is temporary method that removes old mask in order to prevent mask gaining additional values // final implementation should use third layer that indicates whether value was drawn or not. private void updatePaintAndMask() { var l = LayerPainter.GetPaintedLayer(); utils.PaintLayerOnLayerMasked(_beforeUpdateLayer, l, HeightmapLayer); //LayerPainter.ResetMask(l.Resolution); HeightmapVersion++; }
public void FinishPaint(Vector2 vector2) { if (!LayerPainter.ReadyToDraw) { return; } var rec = zoomManager.RecalcZoomDiv(vector2); LayerPainter.FinishBrushPath(rec); updatePaintAndMask(); _heightmapView.RefreshView(); }
public void UpdatePaint(Vector2 vector2) { // TODO async paint. var rec = zoomManager.RecalcZoomDiv(vector2); if (LayerPainter.ReadyToDraw) { LayerPainter.UpdateBrushPath(rec); } updatePaintAndMask(); _heightmapView.RefreshView(); }
public void BeginPaint(Vector2 vector2) { if (!CanPaint()) { return; } _beforeUpdateLayer = new Layer2DObject(HeightmapLayer.Resolution); utils.CloneFromTo(HeightmapLayer, _beforeUpdateLayer); LayerPainter.InitializeSource(this.HeightmapLayer); var rec = zoomManager.RecalcZoomDiv(vector2); LayerPainter.BeginBrushpath(rec, SelectedPluginTool, BrushSize, (float)BrushStrenght / 100, (float)BrushFade / 100); }