Yes, when doing it from the Draw override. Another two small bits were:
CarthesianToPolar was not existing, was called DekartToPolar in my case. Also, no StartPoint and EndPoint properties on the link here.
Anyways, the final code looks like this:
public override void Draw(DrawingContext graphics, MindFusion.Diagramming.Wpf.RenderOptions options)
{
var l = this;
var len = l.Length;
var gap = 10;
var tip = 3;
var wth = 3;
var path = new PathGeometry();
var figure = new PathFigure(
new Point(0, 0),
new[]
{
new LineSegment(new Point(0, -wth), true),
new LineSegment(new Point(len - gap - tip, -wth), true),
new LineSegment(new Point(len - gap, 0), true),
new LineSegment(new Point(len - gap - tip, +wth), true),
new LineSegment(new Point(0, +wth), true)
},
true);
path.Figures.Add(figure);
double a = 0, r = 0;
var start = OriginConnection.GetEndPoint();
var end = DestinationConnection.GetEndPoint();
// first, return to global!
graphics.PushTransform(
new TranslateTransform(-Math.Min(start.X, end.X), -Math.Min(start.Y, end.Y)));
MindFusion.Geometry2D.Convert.DekartToPolar(
start, end, ref a, ref r);
// now, go to the start point
graphics.PushTransform(
new TranslateTransform(start.X, start.Y));
// then rotate to correct position
graphics.PushTransform(
new RotateTransform(-a));
graphics.DrawGeometry(l.Brush, l.Pen, path);
graphics.Pop();
graphics.Pop();
graphics.Pop();
}