return d => { const srcNode = d.source const tgtNode = d.target const src = swapXY(cR(srcNode)) const tgt = swapXY(cL(tgtNode)) const path = d3Path.path() path.moveTo(src.x, src.y) const midX = Math.floor((src.x + tgt.x) / 2) // const midY = Math.floor((src.y + tgt.y) / 2) path.bezierCurveTo(midX, src.y, midX, tgt.y, tgt.x, tgt.y) return path.toString() }
areaRadialLineGenerator = radialArea.lineStartAngle(); areaRadialLineGenerator = radialArea.lineInnerRadius(); areaRadialLineGenerator = radialArea.lineEndAngle(); areaRadialLineGenerator = radialArea.lineOuterRadius(); // ----------------------------------------------------------------------------------- // Test Curve Factories // ----------------------------------------------------------------------------------- // Test General interfaces ----------------------------------------------------------- let lineOnlyGenerator: d3Shape.CurveGeneratorLineOnly; const lineOnlyFactory: d3Shape.CurveFactoryLineOnly = d3Shape.curveBundle; lineOnlyGenerator = lineOnlyFactory(path()); lineOnlyGenerator = lineOnlyFactory(context!); // force context to be non-null with post-fix for mock lineOnlyGenerator.lineStart(); lineOnlyGenerator.lineEnd(); lineOnlyGenerator.point(10, 20); let curveGenerator: d3Shape.CurveGenerator; let curveFactory: d3Shape.CurveFactory = d3Shape.curveBasis; curveGenerator = curveFactory(path()); curveGenerator = curveFactory(context!); // force context to be non-null with post-fix for mock curveGenerator.lineStart(); curveGenerator.lineEnd();
/** * Typescript definition tests for d3/d3-path module * * Note: These tests are intended to test the definitions only * in the sense of typing and call signature consistency. They * are not intended as functional tests. */ import * as d3Path from 'd3-path'; // ----------------------------------------------------------------------------------------- // Test create new path serializer // ----------------------------------------------------------------------------------------- const context: d3Path.Path = d3Path.path(); // ----------------------------------------------------------------------------------------- // Test path serializer methods // ----------------------------------------------------------------------------------------- context.moveTo(50, 50); context.lineTo(100, 100); context.quadraticCurveTo(150, 200, 200, 100); context.bezierCurveTo(300, 50, 400, 200, 500, 100); context.arcTo(250, 250, 300, 300, 60); context.arc(400, 400, 50, 0, Math.PI / 2);