}
protected void drawShadows(int i) {
for (int shindex = 0; shindex < shadowGroups.size(); shindex++) {
SpriteList<Sprite> shadows = shadowGroups.get(shindex);
Sprite shadowAttr = shadowAttributes.get(shindex);
final Sprite shadowSprite;
if (i < shadows.size()) {
shadowSprite = shadows.get(i);
if (!hidden) {
shadowSprite.setHidden(false);
}
} else {
shadowSprite = markerConfig.copy();
shadowSprite.setTranslation((bbox.getX() + bbox.getWidth()) / 2, (bbox.getY() + bbox.getHeight()) / 2);
shadowSprite.setStrokeWidth(shadowAttr.getStrokeWidth());
shadowSprite.setStroke(shadowAttr.getStroke());
shadowSprite.setStrokeOpacity(shadowAttr.getStrokeOpacity());
shadowSprite.setFill(Color.NONE);
shadows.add(shadowSprite);
chart.addSprite(shadowSprite);
}
if (chart.isResizing()) {
shadowSprite.setTranslation((bbox.getX() + bbox.getWidth()) / 2, (bbox.getY() + bbox.getHeight()) / 2);
}
PrecisePoint point = coordinates.get(i);
if (point != null) {
if (chart.isAnimated()) {
DrawFx.createTranslationAnimator(shadowSprite, point.getX(), point.getY()).run(chart.getAnimationDuration(),
chart.getAnimationEasing());
} else {
shadowSprite.setTranslation(point.getX(), point.getY());
shadowSprite.redraw();
}
} else {
shadowSprite.setHidden(true);
shadowSprite.redraw();
}
if (shadowRenderer != null) {
shadowRenderer.spriteRenderer(shadowSprite, i, chart.getCurrentStore());
}
}