docs: void applyFreshParticleOnScreen(
              @NonNull final Scene scene,
              final int position
      ) {
          final int w = scene.getWidth();
          final int h = scene.getHeight();
          if (w == 0 || h == 0) {
              throw new IllegalStateException(
                      "Cannot generate particles if scene width or height is 0");
          }
  
          final double direction = Math.toRadians(random.nextInt(360));
          final float dCos = (float) Math.cos(direction);
          final float dSin = (float) Math.sin(direction);
          final float x = random.nextInt(w);
          final float y = random.nextInt(h);
          final float speedFactor = newRandomIndividualParticleSpeedFactor();
          final float radius = newRandomIndividualParticleRadius(scene);
  
          scene.setParticleData(
                  position,
                  x,
                  y,
                  dCos,
                  dSin,
                  radius,
                  speedFactor);
      }