d3 version 4 workaround for drag origin
<p>In v3 I used drag origin to prevent a noticeable jump due to the mouse-position/element-coordinates offset.  Is there an alternative in v4 as the origin function has been removed?</p>

<pre><code>var drag1 = d3.behavior.drag()
            .origin(function () {
                var t = d3.select(this);
                return {
                    x: t.attr("x") + d3.transform(t.attr("transform")).translate[0],
                    y: t.attr("y") + d3.transform(t.attr("transform")).translate[1]
                };
            })
            .on("drag", function (d, i) {
                d3.select(this).attr("transform", function (d, i) {
                    return "translate(" + [d3.event.x, d3.event.y] + ")"
                })
            });

    var drag2 = d3.behavior.drag()
            .origin(function () {
                var t = d3.select(this);
                return { x: t.attr("x"), y: t.attr("y") };
            })
            .on("drag", function (d, i) {
                d3.select(this)
                .attr("x", d3.event.x)
                .attr("y", d3.event.y);
            });
</code></pre>