modify method
void
modify(
- AesGroups groups,
- Map<
String, ScaleConv< scales,dynamic, num> > - AlgForm form,
- CoordConv coord,
- Offset origin,
override
Modifies the position of element items.
The aesthetic attributes are in the groups
.
Implementation
@override
void modify(AesGroups groups, Map<String, ScaleConv<dynamic, num>> scales,
AlgForm form, CoordConv coord, Offset origin) {
final xField = form.first[0];
final band = (scales[xField] as DiscreteScaleConv).band;
final ratio = this.ratio ?? 0.5;
final random = Random();
for (var group in groups) {
for (var aes in group) {
final oldPosition = aes.position;
final bias = ratio * band * (random.nextDouble() - 0.5);
aes.position = oldPosition
.map(
(point) => Offset(point.dx + bias, point.dy),
)
.toList();
}
}
}