准备添加中间端点

This commit is contained in:
艾竹
2023-01-15 11:59:51 +08:00
parent 717cc43827
commit 7d77864311
19 changed files with 1440 additions and 117 deletions

View File

@@ -4,8 +4,8 @@ namespace AIStudio.Wpf.DiagramDesigner
{
public class PathGeneratorResult
{
public PathGeneratorResult(string[] paths, double? sourceMarkerAngle = null, PointBase? sourceMarkerPosition = null,
double? targetMarkerAngle = null, PointBase? targetMarkerPosition = null)
public PathGeneratorResult(string[] paths, double sourceMarkerAngle, PointBase sourceMarkerPosition,
double targetMarkerAngle, PointBase targetMarkerPosition)
{
Paths = paths;
SourceMarkerAngle = sourceMarkerAngle;
@@ -15,9 +15,9 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public string[] Paths { get; }
public double? SourceMarkerAngle { get; }
public PointBase? SourceMarkerPosition { get; }
public double? TargetMarkerAngle { get; }
public PointBase? TargetMarkerPosition { get; }
public double SourceMarkerAngle { get; }
public PointBase SourceMarkerPosition { get; }
public double TargetMarkerAngle { get; }
public PointBase TargetMarkerPosition { get; }
}
}

View File

@@ -15,11 +15,9 @@ namespace AIStudio.Wpf.DiagramDesigner
return CurveThroughPoints(route, link);
route = GetRouteWithMiddlePoints(_, link, route);
double? sourceAngle = null;
double? targetAngle = null;
sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.LeftArrowSizeStyle);
targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.RightArrowPathStyle);
double sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.LeftArrowSizeStyle);
double targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.RightArrowPathStyle);
DoShift(route, link);

View File

@@ -18,11 +18,9 @@ namespace AIStudio.Wpf.DiagramDesigner
route = GetRouteWithFullConnectionLine(_, link, route);
else
route = GetRouteWithPartConnectionLine(_, link, route);
double? sourceAngle = null;
double? targetAngle = null;
sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.LeftArrowSizeStyle);
targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.RightArrowPathStyle);
double sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.LeftArrowSizeStyle);
double targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.RightArrowPathStyle);
DoShift(route, link);

View File

@@ -16,11 +16,9 @@ namespace AIStudio.Wpf.DiagramDesigner
return CurveThroughPoints(route, link);
route = GetRouteWithCurvePoints(link, route);
double? sourceAngle = null;
double? targetAngle = null;
sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.LeftArrowSizeStyle);
targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.RightArrowPathStyle);
double sourceAngle = SourceMarkerAdjustement(route, link.ColorViewModel.LeftArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.LeftArrowSizeStyle);
double targetAngle = TargetMarkerAdjustement(route, link.ColorViewModel.RightArrowPathStyle == ArrowPathStyle.None ? 0d : (double)link.ColorViewModel.RightArrowPathStyle);
DoShift(route, link);
@@ -30,11 +28,8 @@ namespace AIStudio.Wpf.DiagramDesigner
private static PathGeneratorResult CurveThroughPoints(PointBase[] route, ConnectorViewModel link)
{
double? sourceAngle = null;
double? targetAngle = null;
sourceAngle = SourceMarkerAdjustement(route, (double)link.ColorViewModel.LeftArrowSizeStyle);
targetAngle = TargetMarkerAdjustement(route, (double)link.ColorViewModel.RightArrowPathStyle);
double sourceAngle = SourceMarkerAdjustement(route, (double)link.ColorViewModel.LeftArrowSizeStyle);
double targetAngle = TargetMarkerAdjustement(route, (double)link.ColorViewModel.RightArrowPathStyle);
BezierSpline.GetCurveControlPoints(route, out var firstControlPoints, out var secondControlPoints);
var paths = new string[firstControlPoints.Length];

View File

@@ -8,11 +8,9 @@ namespace AIStudio.Wpf.DiagramDesigner
public static PathGeneratorResult Straight(IDiagramViewModel _, ConnectorViewModel link, PointBase[] route, PointBase source, PointBase target)
{
route = ConcatRouteAndSourceAndTarget(route, source, target);
double? sourceAngle = null;
double? targetAngle = null;
sourceAngle = SourceMarkerAdjustement(route, (double)link.ColorViewModel.LeftArrowSizeStyle);
targetAngle = TargetMarkerAdjustement(route, (double)link.ColorViewModel.RightArrowPathStyle);
double sourceAngle = SourceMarkerAdjustement(route, (double)link.ColorViewModel.LeftArrowSizeStyle);
double targetAngle = TargetMarkerAdjustement(route, (double)link.ColorViewModel.RightArrowPathStyle);
DoShift(route, link);