Files
Progrart/Progrart.Core/Graphics/PathCmd.cs

47 lines
1.2 KiB
C#
Raw Normal View History

using SkiaSharp;
namespace Progrart.Core.Graphics
{
public class PathCmd
{
public virtual void ApplyCommand(RenderContext context, SKPath path) { }
}
public class LineToCmd(float x, float y) : PathCmd
{
public readonly float x = x;
public readonly float y = y;
public override void ApplyCommand(RenderContext context, SKPath path)
{
base.ApplyCommand(context, path);
var pos = context.TranslatePoint(x, y);
path.LineTo(pos);
}
}
public class QuadToCmd(float x1, float y1, float x2, float y2) : PathCmd
{
public readonly float x1 = x1;
public readonly float y1 = y1;
private readonly float x2 = x2;
private readonly float y2 = y2;
public override void ApplyCommand(RenderContext context, SKPath path)
{
base.ApplyCommand(context, path);
var pos = context.TranslatePoint(x1, y1);
var pos2 = context.TranslatePoint(x2, y2);
path.QuadTo(pos, pos2);
}
}
public class MoveToCmd(float x, float y) : PathCmd
{
public readonly float x = x;
public readonly float y = y;
public override void ApplyCommand(RenderContext context, SKPath path)
{
base.ApplyCommand(context, path);
var pos = context.TranslatePoint(x, y);
path.MoveTo(pos);
}
}
}