The `Segments` link tool renders handles above all segments of the link (as determined by the link connector). It accepts four additional arguments, which can be passed as an object to the link tool constructor:

redundancyRemoval

boolean

If the user arranges two (or more) segments so that they lie on a single line, should the middle one(s) be considered redundant and removed? Default is `true`. Note that this setting is not applied until the user actually moves one of the segments in question; this means that segments can still be arranged in this redundant fashion, using the `link.vertices` function, for example.

segmentLengthThreshold | number | The minimum segment length for which to display a segment handle (to prevent the handle from overflowing its segment). Default is `40`.
snapRadius | number | While the user is moving the segment, from how far away should the segment snap in order to arrange itself in line with another segment? Default is `10`.
snapHandle | number | If the `snapRadius` option is set to `true` and the segment is snapped in place while the user moves the segment handle, should the handle follow the user pointer or should the handle stay snapped with the segment until it un-snaps? Default is `true`, meaning that the handle snaps with the segment.
stopPropagation | boolean | Should be events stopped from propagating to the paper? Default is `true`.

Example:

    var segmentsTool = new joint.linkTools.Segments({
        focusOpacity: 0.5,
        redundancyRemoval: false,
        segmentLengthThreshold: 50,
        snapHandle: false,
        snapRadius: 10
    });