public Point[] ControlPoints() { if (WrappedObject.Input == null || WrappedObject.Output == null) { return(null); } Allocation a1 = WrappedObject.Input.Allocation; Allocation a2 = WrappedObject.Output.Allocation; if (d_prevFrom != null && d_prevTo != null && a1.Equals(d_prevFrom) && a2.Equals(d_prevTo)) { return(d_controlPoints); } d_prevFrom = a1.Copy(); d_prevTo = a2.Copy(); d_controlPoints = ControlPoints(a1, a2, WrappedObject.Offset); return(d_controlPoints); }