addPositionToDetailsForSeriesDatum method
DatumDetails<D>
addPositionToDetailsForSeriesDatum(
- DatumDetails<
D> details, - SeriesDatum<
D> seriesDatum
override
Adds chart position data to details
.
This is a helper function intended to be called from getDetailsForSeriesDatum. Every concrete SeriesRenderer needs to implement custom logic for setting location data.
Implementation
@override
DatumDetails<D> addPositionToDetailsForSeriesDatum(
DatumDetails<D> details, SeriesDatum<D> seriesDatum) {
final series = details.series!;
final domainAxis = series.getAttr(domainAxisKey) as ImmutableAxis<D>;
final measureAxis = series.getAttr(measureAxisKey) as ImmutableAxis<num>;
final barGroupIndex = series.getAttr(barGroupIndexKey)!;
final previousBarGroupWeight = series.getAttr(previousBarGroupWeightKey);
final barGroupWeight = series.getAttr(barGroupWeightKey);
final allBarGroupWeights = series.getAttr(allBarGroupWeightsKey);
final numBarGroups = series.getAttr(barGroupCountKey)!;
final points = _getTargetLinePoints(
details.domain,
domainAxis,
domainAxis.rangeBand.round(),
config.maxBarWidthPx,
details.measure,
details.measureOffset!,
measureAxis,
barGroupIndex,
previousBarGroupWeight,
barGroupWeight,
allBarGroupWeights,
numBarGroups);
NullablePoint chartPosition;
if (renderingVertically) {
chartPosition = NullablePoint(
(points[0].x + (points[1].x - points[0].x) / 2).toDouble(),
points[0].y.toDouble());
} else {
chartPosition = NullablePoint(points[0].x.toDouble(),
(points[0].y + (points[1].y - points[0].y) / 2).toDouble());
}
return DatumDetails.from(details, chartPosition: chartPosition);
}