in src/configurableTL.js [1627:1692]
function configureSegmentedRadialAxis(tl_representation, tl_layout, tl_scale, duration, radial_axis_quantiles, timeline_scale_segments, radial_axis, timeline_segment, width, height, timeline_scale, timeline_container, prev_tl_representation, prev_tl_layout) {
if (tl_representation === "Radial" && tl_layout === "Segmented") {
radial_axis.duration(duration);
radial_axis.radial_axis_units("Segments");
if (radial_axis_quantiles !== timeline_scale_segments) {
radial_axis_quantiles = timeline_scale_segments;
}
radial_axis.final_quantile(timeline_scale_segments[timeline_scale_segments.length - 1]);
// get radial_axis_quantiles of timeline_scale_segments for radial axis ticks
if (globals.segment_granularity === "epochs") {
radial_axis.track_bounds(1);
} else {
radial_axis.track_bounds(globals.num_tracks + 1);
}
// update the radial axis for segmented radial timelines
var segmented_radial_axis = timeline_segment.selectAll(".segmented_radial_axis")
.data([radial_axis_quantiles]);
let segment_number = 0;
segmented_radial_axis.enter()
.append("g")
.attr("class", "segmented_radial_axis")
.style("opacity", 0);
timeline_segment.selectAll(".segmented_radial_axis")
.transition("segmented_radial_axis_update")
.duration(0)
.style("opacity", 1)
.attr("transform", function () {
var offset_x,
offset_y;
if (tl_layout !== "Segmented" || tl_representation === "Calendar" || tl_representation === "Grid") {
offset_x = width / 2;
offset_y = height / 2;
} else if (tl_representation === "Linear") {
offset_x = width / 2;
offset_y = segment_number * (height / globals.num_segments);
segment_number++;
} else if (tl_representation === "Radial") {
var segment_dim_x = width / globals.num_segment_cols;
var segment_dim_y = height / globals.num_segment_rows;
offset_x = segment_number % globals.num_segment_cols * segment_dim_x;
offset_y = Math.floor(segment_number / globals.num_segment_cols) * segment_dim_y + globals.buffer;
segment_number++;
} else {
offset_x = width / 2;
offset_y = height / 2;
}
return "translate(" + unNaN(offset_x) + "," + unNaN(offset_y) + ")";
})
.call(radial_axis.radial_axis_scale(timeline_scale).x_pos(width / globals.num_segment_cols / 2).y_pos(height / globals.num_segment_rows / 2));
logEvent("Segmented Radial axis updated", "axis_update");
} else if (prev_tl_representation === "Radial" && prev_tl_layout === "Segmented" && (tl_representation !== "Radial" || tl_layout !== "Segmented")) {
hideAxis(timeline_container, duration, "segmented_radial_axis");
}
return { radial_axis_quantiles };
}