code: public static Geometry isovist(Geometry viewPoint, Geometry lineSegments, double maxDistance) throws SQLException {
          if (!(viewPoint instanceof Point) || viewPoint.isEmpty()) {
              throw new SQLException("First parameter of ST_Isovist must be a Point");
          }
          if (maxDistance <= 0) {
              throw new SQLException("Third parameter of ST_Isovist must be a valid distance superior than 0");
          }
          VisibilityAlgorithm visibilityAlgorithm = new VisibilityAlgorithm(maxDistance);
          visibilityAlgorithm.addGeometry(lineSegments);
          return visibilityAlgorithm.getIsoVist(viewPoint.getCoordinate(), true);
      }
docs: This function compute the visibility polygon
  @param viewPoint Point instance, isovist location
  @param lineSegments Occlusion segments. Geometry collection or polygon or linestring
  @param maxDistance Maximum distance of view from viewPoint (spatial ref units)
  @return The visibility polygon
  @throws SQLException In case of wrong parameters