Adjust project structure
This commit is contained in:
1 parent
d38912f5da
commit
e3c436f939
2111 files changed
+14028
-47199
No files matched your search
@@ -0,0 +1,76 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
|
||||
namespace HandyControl.Expression.Drawing
|
||||
{
|
||||
internal class SimpleSegment
|
||||
{
|
||||
public enum SegmentType
|
||||
{
|
||||
Line,
|
||||
|
||||
CubicBeizer
|
||||
}
|
||||
|
||||
|
||||
private SimpleSegment()
|
||||
{
|
||||
}
|
||||
|
||||
public Point[] Points { get; private set; }
|
||||
|
||||
public SegmentType Type { get; private set; }
|
||||
|
||||
public static SimpleSegment Create(Point point0, Point point1)
|
||||
{
|
||||
var segment = new SimpleSegment
|
||||
{
|
||||
Type = SegmentType.Line,
|
||||
Points = new[] {point0, point1}
|
||||
};
|
||||
return segment;
|
||||
}
|
||||
|
||||
public static SimpleSegment Create(Point point0, Point point1, Point point2)
|
||||
{
|
||||
var point = GeometryHelper.Lerp(point0, point1, 0.66666666666666663);
|
||||
var point3 = GeometryHelper.Lerp(point1, point2, 0.33333333333333331);
|
||||
var segment = new SimpleSegment
|
||||
{
|
||||
Type = SegmentType.CubicBeizer,
|
||||
Points = new[] {point0, point, point3, point2}
|
||||
};
|
||||
return segment;
|
||||
}
|
||||
|
||||
public static SimpleSegment Create(Point point0, Point point1, Point point2, Point point3)
|
||||
{
|
||||
var segment = new SimpleSegment
|
||||
{
|
||||
Type = SegmentType.CubicBeizer,
|
||||
Points = new[] {point0, point1, point2, point3}
|
||||
};
|
||||
return segment;
|
||||
}
|
||||
|
||||
public void Flatten(IList<Point> resultPolyline, double tolerance, IList<double> resultParameters)
|
||||
{
|
||||
switch (Type)
|
||||
{
|
||||
case SegmentType.Line:
|
||||
resultPolyline.Add(Points[1]);
|
||||
if (resultParameters == null) break;
|
||||
resultParameters.Add(1.0);
|
||||
return;
|
||||
|
||||
case SegmentType.CubicBeizer:
|
||||
BezierCurveFlattener.FlattenCubic(Points, tolerance, resultPolyline, true,
|
||||
resultParameters);
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user