move application of transformation matrix outside path

This commit is contained in:
Eliot Jones
2019-08-08 21:19:18 +01:00
parent 4dde4ca0c1
commit c5d03bca97
10 changed files with 40 additions and 41 deletions

View File

@@ -52,10 +52,13 @@
/// <inheritdoc />
public void Run(IOperationContext operationContext)
{
operationContext.CurrentPath.BezierCurveTo(ControlPoint1.X, ControlPoint1.Y,
ControlPoint2.X, ControlPoint2.Y,
End.X, End.Y);
operationContext.CurrentPosition = End;
var controlPoint1Transform = operationContext.CurrentTransformationMatrix.Transform(ControlPoint1);
var controlPoint2Transform = operationContext.CurrentTransformationMatrix.Transform(ControlPoint2);
var endTransform = operationContext.CurrentTransformationMatrix.Transform(End);
operationContext.CurrentPath.BezierCurveTo(controlPoint1Transform.X, controlPoint1Transform.Y,
controlPoint2Transform.X, controlPoint2Transform.Y,
endTransform.X, endTransform.Y);
operationContext.CurrentPosition = endTransform;
}
/// <inheritdoc />

View File

@@ -44,12 +44,14 @@
/// <inheritdoc />
public void Run(IOperationContext operationContext)
{
operationContext.CurrentPath.BezierCurveTo(ControlPoint1.X, ControlPoint1.Y,
End.X,
End.Y,
End.X,
End.Y);
operationContext.CurrentPosition = End;
var controlPoint1Transform = operationContext.CurrentTransformationMatrix.Transform(ControlPoint1);
var endTransform = operationContext.CurrentTransformationMatrix.Transform(End);
operationContext.CurrentPath.BezierCurveTo(controlPoint1Transform.X, controlPoint1Transform.Y,
endTransform.X,
endTransform.Y,
endTransform.X,
endTransform.Y);
operationContext.CurrentPosition = endTransform;
}
/// <inheritdoc />

View File

@@ -51,7 +51,8 @@
public void Run(IOperationContext operationContext)
{
operationContext.BeginSubpath();
operationContext.CurrentPath.Rectangle(LowerLeft.X, LowerLeft.Y, Width, Height);
var lowerLeftTransform = operationContext.CurrentTransformationMatrix.Transform(LowerLeft);
operationContext.CurrentPath.Rectangle(lowerLeftTransform.X, lowerLeftTransform.Y, Width, Height);
}
/// <inheritdoc />

View File

@@ -44,13 +44,15 @@
/// <inheritdoc />
public void Run(IOperationContext operationContext)
{
var controlPoint2Transform = operationContext.CurrentTransformationMatrix.Transform(ControlPoint2);
var endTransform = operationContext.CurrentTransformationMatrix.Transform(End);
operationContext.CurrentPath.BezierCurveTo(operationContext.CurrentPosition.X,
operationContext.CurrentPosition.Y,
ControlPoint2.X,
ControlPoint2.Y,
End.X,
End.Y);
operationContext.CurrentPosition = End;
controlPoint2Transform.X,
controlPoint2Transform.Y,
endTransform.X,
endTransform.Y);
operationContext.CurrentPosition = endTransform;
}
/// <inheritdoc />

View File

@@ -35,8 +35,9 @@
/// <inheritdoc />
public void Run(IOperationContext operationContext)
{
operationContext.CurrentPath.LineTo(End.X, End.Y);
operationContext.CurrentPosition = End;
var endPoint = operationContext.CurrentTransformationMatrix.Transform(new PdfPoint(End.X, End.Y));
operationContext.CurrentPath.LineTo(endPoint.X, endPoint.Y);
operationContext.CurrentPosition = endPoint;
}
/// <inheritdoc />

View File

@@ -36,8 +36,9 @@
public void Run(IOperationContext operationContext)
{
operationContext.BeginSubpath();
operationContext.CurrentPosition = Point;
operationContext.CurrentPath.LineTo(Point.X, Point.Y);
var pointTransform = operationContext.CurrentTransformationMatrix.Transform(Point);
operationContext.CurrentPosition = pointTransform;
operationContext.CurrentPath.MoveTo(pointTransform.X, pointTransform.Y);
}
/// <inheritdoc />