private Shape getShape()
    {
        if (cachedShape == null || lastX != this.getPosition().getX()
                || lastY != this.getPosition().getY() || lastRadius != this.getRadius())
        {
            cachedShape = createNewShape();
            lastX = this.getPosition().getX();
            lastY = this.getPosition().getY();
            lastRadius = this.getRadius();
        }
        
        return cachedShape;
    }