using System.Windows; using System.Windows.Media; using Artemis.Core; using SkiaSharp; namespace Artemis.UI.Services { public interface ILayerEditorService : IArtemisUIService { /// /// Returns the layer's bounds, corrected for the current render scale. /// /// /// Rect GetLayerBounds(Layer layer); /// /// Returns the layer's anchor, corrected for the current render scale. /// /// /// /// Point GetLayerAnchorPosition(Layer layer, SKPoint? positionOverride = null); /// /// Creates a WPF transform group that contains all the transformations required to render the provided layer. /// Note: Run on UI thread. /// /// /// TransformGroup GetLayerTransformGroup(Layer layer); /// /// Returns an absolute and scaled rectangular path for the given layer that is corrected for the current render scale. /// /// /// /// /// /// /// SKPath GetLayerPath(Layer layer, bool includeTranslation, bool includeScale, bool includeRotation, SKPoint? anchorOverride = null); /// /// Returns a new point scaled to the layer. /// /// /// /// /// SKPoint GetScaledPoint(Layer layer, SKPoint point, bool absolute); SKPoint GetDragOffset(Layer layer, SKPoint dragStart); } }