Docs ▸ Introduction | Development | Demo //// API Reference ▸ Force | Node | Renderer
Renderer is a utility for drawing the output from labella.
var renderer = new labella.Renderer({
layerGap: 60,
nodeHeight: 12,
direction: 'up'
});
function draw(nodes){
// Add x,y,dx,dy to node
renderer.layout(nodes);
// Draw label rectangles
d3.selectAll('rect.label')
.data(nodes)
.enter().append('rect')
.classed('label', true)
.attr('x', function(d){ return d.x - d.dx/2; })
.attr('y', function(d){ return d.y; })
.attr('width', function(d){ return d.dx; })
.attr('height', function(d){ return d.dy; });
// Draw path from point on the timeline to the label rectangle
d3.selectAll('path.link')
.data(nodes)
.enter().append('path')
.classed('link', true)
.attr('d', function(d){return renderer.generatePath(d);});
}
# var renderer = new labella.Renderer([options: Object]);
There are a few options that you can customize when creating a renderer.
option | default | description |
---|---|---|
layerGap | 60 | gap between layer of labels |
nodeHeight | 12 | For horizontal axis, this is the height of each label. For vertical axis, this is the width of each label. |
direction | 'down' | placement of the label relative to the axis. Choose from 'up' , 'down' , 'left' or 'right' . Use 'left' or 'right' for vertical axis and 'up' or 'down' for horizontal axis. See example. |
# renderer.generatePath(node:Node)
Generate value for <path>
attribute d
for given node to draw the route from axis to label.
# renderer.getWaypoints(node:Node)
Return points on the route from axis to label. The returned value is an array of array of points.
[
[point on the axis],
[top point on layer1, bottom point on layer1],
[top point on layer2, bottom point on layer2],
...
]
Each point is also an array [x, y].
# renderer.layout(nodes:Array)
Add x
, y
, dx
and dy
to each node in the input array.