code: public double getShadowLength(double objectHeight) {
  
          final double e = this.getElevation();
  
          if (Double.isFinite(objectHeight)) {
              if (objectHeight <= 0.0) {
                  throw new IllegalArgumentException("Object height must be greater than zero: " + objectHeight);
              } else if (e <= 0.0) {
                  return Double.POSITIVE_INFINITY;
              } else if (e == 90.0) {
                  return 0.0;
              } else {
                  return objectHeight / Math.tan(Math.toRadians(e));
              }
          } else {
              throw new IllegalArgumentException("Object height must be finite and positive: " + objectHeight);
          }
  
      }
docs: /*[deutsch]
  <p>Bestimmt die L&auml;nge des Schattens, der von einem Objekt der angegebenen H&ouml;he geworfen wird. </p>
  
  <p>Wenn die Sonne am oder unter dem Horizont steht, ist die Schattenl&auml;nge positiv unendlich. </p>
  
  @param   objectHeight    the height of object in meters
  @return  length of shadow in meters (or positive infinity)
  @throws  IllegalArgumentException if the object height is not finite and positive
  @since   3.40/4.35