code: protected void updateBoundingRects() {
  		float maxX = startX[0];
  		float minX = startX[0];
  		float maxY = startY[0];
  		float minY = startY[0];
  
  		for (int i = 0; i < rayNum; i++) {
  			maxX = maxX > startX[i] ? maxX : startX[i];
  			maxX = maxX > mx[i] ? maxX : mx[i];
  			minX = minX < startX[i] ? minX : startX[i];
  			minX = minX < mx[i] ? minX : mx[i];
  			maxY = maxY > startY[i] ? maxY : startY[i];
  			maxY = maxY > my[i] ? maxY : my[i];
  			minY = minY < startY[i] ? minY : startY[i];
  			minY = minY < my[i] ? minY : my[i];
  		}
  		chainLightBounds.set(minX, minY, maxX - minX, maxY - minY);
  		rayHandlerBounds.set(
  			rayHandler.x1, rayHandler.y1,
  			rayHandler.x2 - rayHandler.x1, rayHandler.y2 - rayHandler.y1);
  	}
docs: Internal method for bounding rectangle recalculation *