Class BuildingIntersectionPathVisitor

java.lang.Object
org.noise_planet.noisemodelling.pathfinder.profilebuilder.BuildingIntersectionPathVisitor
All Implemented Interfaces:
org.locationtech.jts.index.ItemVisitor

public final class BuildingIntersectionPathVisitor extends Object implements org.locationtech.jts.index.ItemVisitor
  • Constructor Summary

    Constructors
    Constructor
    Description
    BuildingIntersectionPathVisitor(org.locationtech.jts.geom.Coordinate p1, org.locationtech.jts.geom.Coordinate p2, boolean left, ProfileBuilder profileBuilder, List<org.locationtech.jts.geom.Coordinate> input, org.apache.commons.math3.geometry.euclidean.threed.Plane cutPlane)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addItem(int id)
    Add a wall (segment alone or from a segment of a building polygon) to the input list if not already done.
    boolean
     
    void
    setCurved(boolean curved)
    If true, the path between p1 and p2 is curved (a segment of circle).
    void
    setIntersectionLine(org.locationtech.jts.geom.LineSegment segment)
     
    void
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BuildingIntersectionPathVisitor

      public BuildingIntersectionPathVisitor(org.locationtech.jts.geom.Coordinate p1, org.locationtech.jts.geom.Coordinate p2, boolean left, ProfileBuilder profileBuilder, List<org.locationtech.jts.geom.Coordinate> input, org.apache.commons.math3.geometry.euclidean.threed.Plane cutPlane)
  • Method Details

    • setCurved

      public void setCurved(boolean curved)
      If true, the path between p1 and p2 is curved (a segment of circle). In this case, the curved coordinate system is used and the altitudes of intermediations buildings are modified accordingly. If false, keep the coordinates of the buildings as they are in the input data.
      Parameters:
      curved - true if the path between p1 and p2 is curved (a segment of circle)
    • isCurved

      public boolean isCurved()
      Returns:
      true if the path between p1 and p2 is curved (a segment of circle). In this case, the intersectionLine is a chord of the circle. If false, the path between p1 and p2 is a straight line.
    • setIntersectionLine

      public void setIntersectionLine(org.locationtech.jts.geom.LineSegment segment)
      Parameters:
      segment - When visit an item, only add the walls in the hull points input if it intersects with the segment in argument
    • visitItem

      public void visitItem(Object item)
      Specified by:
      visitItem in interface org.locationtech.jts.index.ItemVisitor
      Parameters:
      item - the index item to be visited
    • addItem

      public void addItem(int id)
      Add a wall (segment alone or from a segment of a building polygon) to the input list if not already done. It could be ignored if it does not cross with the 3D cutPlane.
      Parameters:
      id - the wall id to be added