code: public static Geometry isovist(Geometry viewPoint, Geometry lineSegments, double maxDistance, double radBegin, double radSize) throws SQLException {
          if(radSize <=0 ) {
              throw new SQLException("Angle size must be superior than 0 rad");
          }
  
          Geometry isopoly = isovist(viewPoint, lineSegments, maxDistance);
  
          // Intersects with view constrain
          GeometricShapeFactory geometricShapeFactory = new GeometricShapeFactory();
          geometricShapeFactory.setCentre(viewPoint.getCoordinate());
          geometricShapeFactory.setWidth(maxDistance * 2);
          geometricShapeFactory.setHeight(maxDistance * 2);
          return geometricShapeFactory.createArcPolygon(radBegin, radSize).intersection(isopoly);
      }
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)
  @param radBegin Constraint view angle start in radian
  @param radSize Constraint view angle size in radian
  @return The visibility polygon
  @throws SQLException In case of wrong parameters