code: private static Geometry shadowPoint(Point point, double[] shadowOffset, GeometryFactory factory) {
          Coordinate startCoord = point.getCoordinate();
          Coordinate offset = moveCoordinate(startCoord, shadowOffset);
          if (offset.distance(point.getCoordinate()) < 10E-3) {
              return point;
          } else {
              startCoord.z = 0;
              return factory.createLineString(new Coordinate[]{startCoord, offset});
          }
      }
docs: Compute the shadow for a point
  
  @param point the input point
  @param shadowOffset computed according the sun position and the height of
  the geometry
  @return