New connection point function can be defined in the `joint.connectionPoints` namespace (e.g. `joint.connectionPoints.myConnectionPoint`) or passed directly as a function to the `connectionPoint` property of link source/target (or to the `defaultConnectionPoint` option of a paper).

In either case, the connection point function must return the connection point as a Point. The function is expected to have the form `function(endPathSegmentLine, endView, endMagnet, args)`:

endPathSegmentLine | g.Line | The link path segment at which we are finding the connection point. If we are calling this method for a source connection point, it is the first segment (source anchor - first vertex, or source anchor - target anchor). If we are calling this method for a target connection point, it is the last segment (last vertex - target anchor, or source anchor - target anchor).
endView | dia.ElementView | The ElementView to which we are connecting. The Element model can be accessed as `endView.model`; this may be useful for writing conditional logic based on element attributes.
endMagnet | SVGElement | The SVGElement in our page that contains the magnet (element/subelement/port) to which we are connecting.
args | object | An object with additional optional arguments passed to the connection point method by the user when it was called (the `args` property).