getAnimationGridItemOffset function
Computing GridItem Offset (from -> end)
Implementation
Offset getAnimationGridItemOffset({
required double crossAxisSpacing,
required double mainAxisSpacing,
required Axis direction,
required int crossCount,
required Size itemSize,
required int from,
required int end,
}) {
int sx = 0;
int ex = 0;
int sy = 0;
int ey = 0;
double kw = 1.0;
double kh = 1.0;
if (direction == Axis.vertical) {
sx = from % crossCount;
ex = end % crossCount;
sy = from ~/ crossCount;
ey = end ~/ crossCount;
kw = (itemSize.width + crossAxisSpacing) / itemSize.width;
kh = (itemSize.height + mainAxisSpacing) / itemSize.height;
}
if (direction == Axis.horizontal) {
sx = from ~/ crossCount;
ex = end ~/ crossCount;
sy = from % crossCount;
ey = end % crossCount;
kw = (itemSize.width + mainAxisSpacing) / itemSize.width;
kh = (itemSize.height + crossAxisSpacing) / itemSize.height;
}
return Offset(
(sx - ex).toDouble() * kw,
(sy - ey).toDouble() * kh,
);
}