diff --git a/src/Avalonia.Visuals/Platform/IGeometryImpl.cs b/src/Avalonia.Visuals/Platform/IGeometryImpl.cs
index 7490ad912a..5c39afa846 100644
--- a/src/Avalonia.Visuals/Platform/IGeometryImpl.cs
+++ b/src/Avalonia.Visuals/Platform/IGeometryImpl.cs
@@ -11,6 +11,12 @@ namespace Avalonia.Platform
/// Gets the geometry's bounding rectangle.
///
Rect Bounds { get; }
+
+ ///
+ /// Gets the geometry's total length as if all its contours are placed
+ /// in a straight line.
+ ///
+ double ContourLength { get; }
///
/// Gets the geometry's bounding rectangle with the specified pen.
@@ -47,5 +53,25 @@ namespace Avalonia.Platform
/// The transform.
/// The cloned geometry.
ITransformedGeometryImpl WithTransform(Matrix transform);
+
+ ///
+ /// Attempts to get the corresponding point from the
+ /// specified distance
+ ///
+ /// The contour distance to get from.
+ /// The point in the specified distance.
+ /// If there's valid point at the specified distance.
+ bool TryGetPointAtDistance(double distance, out Point point);
+
+ ///
+ /// Attempts to get the corresponding point and
+ /// tangent from the specified distance along the
+ /// contour of the geometry.
+ ///
+ /// The contour distance to get from.
+ /// The point in the specified distance.
+ /// The tangent in the specified distance.
+ /// If there's valid point and tangent at the specified distance.
+ bool TryGetPositionAndTangentAtDistance (double distance, out Point position, out Point tangent);
}
}