Class GeoStandardPath.PathSegment

    • Field Detail

      • start

        public final GeoPoint start
        Starting point of the segment
      • end

        public final GeoPoint end
        End point of the segment
      • startDistanceCache

        public final java.util.Map<DistanceStyle,​java.lang.Double> startDistanceCache
        Place to keep any complete segment distances we've calculated so far
      • normalizedConnectingPlane

        public final Plane normalizedConnectingPlane
        Normalized plane connecting the two points and going through world center
      • upperConnectingPlane

        public final SidedPlane upperConnectingPlane
        Cutoff plane parallel to connecting plane representing one side of the path segment
      • lowerConnectingPlane

        public final SidedPlane lowerConnectingPlane
        Cutoff plane parallel to connecting plane representing the other side of the path segment
      • startCutoffPlane

        public final SidedPlane startCutoffPlane
        Plane going through the center and start point, marking the start edge of the segment
      • endCutoffPlane

        public final SidedPlane endCutoffPlane
        Plane going through the center and end point, marking the end edge of the segment
      • URHC

        public final GeoPoint URHC
        Upper right hand corner of segment
      • LRHC

        public final GeoPoint LRHC
        Lower right hand corner of segment
      • ULHC

        public final GeoPoint ULHC
        Upper left hand corner of segment
      • LLHC

        public final GeoPoint LLHC
        Lower left hand corner of segment
      • upperConnectingPlanePoints

        public final GeoPoint[] upperConnectingPlanePoints
        Notable points for the upper connecting plane
      • lowerConnectingPlanePoints

        public final GeoPoint[] lowerConnectingPlanePoints
        Notable points for the lower connecting plane
    • Constructor Detail

      • PathSegment

        public PathSegment​(PlanetModel planetModel,
                           GeoStandardPath.PathComponent previous,
                           GeoPoint start,
                           GeoPoint end,
                           Plane normalizedConnectingPlane,
                           double planeBoundingOffset)
        Construct a path segment.
        Parameters:
        planetModel - is the planet model.
        start - is the starting point.
        end - is the ending point.
        normalizedConnectingPlane - is the connecting plane.
        planeBoundingOffset - is the linear offset from the connecting plane to either side.
    • Method Detail

      • distance

        public double distance​(DistanceStyle distanceStyle,
                               double x,
                               double y,
                               double z)
        Description copied from interface: GeoStandardPath.PathComponent
        Compute distance measure starting from beginning of the path and including perpendicular dog-leg to a point within the corridor.
        Specified by:
        distance in interface GeoStandardPath.PathComponent
        Parameters:
        distanceStyle - is the distance style
        x - is the x coordinate of the point we want to get the distance to
        y - is the y coordinate of the point we want to get the distance to
        z - is the z coordinate of the point we want to get the distance to
        Returns:
        the distance from start of path
      • nearestDistance

        public GeoStandardPath.DistancePair nearestDistance​(DistanceStyle distanceStyle,
                                                            double x,
                                                            double y,
                                                            double z)
        Description copied from interface: GeoStandardPath.PathComponent
        Get the nearest distance for a point. This is the old "legacy" computation: We find the segment endpoint or path segment with the closest pathCenterDistance(), and keep track of the one where that's at a minimum. We then compute nearestPathDistance() if it's a segment and add that to fullPathDistance() computed along the entire path up to that point.

        So what we are minimizing is not what we are returning here. That is why this is tricky to modularize; we need to return two values: the best pathCenterDistance, and the corresponding nearestPathDistance + startingDistance.

        Specified by:
        nearestDistance in interface GeoStandardPath.PathComponent
        Parameters:
        distanceStyle - is the distance style
        x - is the x coordinate of the point we want to get the distance to
        y - is the y coordinate of the point we want to get the distance to
        z - is the z coordinate of the point we want to get the distance to
        Returns:
        the DistancePair containing both distances described above
      • computeStartingDistance

        private double computeStartingDistance​(DistanceStyle distanceStyle)
      • pathCenterDistance

        public double pathCenterDistance​(DistanceStyle distanceStyle,
                                         double x,
                                         double y,
                                         double z)
        Description copied from interface: GeoStandardPath.PathComponent
        Compute path center distance (distance from the point to center of the path, if reachable by this segment).
        Specified by:
        pathCenterDistance in interface GeoStandardPath.PathComponent
        Parameters:
        distanceStyle - is the distance style.
        x - is the point x.
        y - is the point y.
        z - is the point z.
        Returns:
        the distance metric, or POSITIVE_INFINITY if the point is not within the bounds of the path segment.
      • nearestPathDistance

        public double nearestPathDistance​(DistanceStyle distanceStyle,
                                          double x,
                                          double y,
                                          double z)
        Description copied from interface: GeoStandardPath.PathComponent
        Compute nearest path distance (distance from start of segment to point adjacent the one specitied, if reachable by this segment).
        Specified by:
        nearestPathDistance in interface GeoStandardPath.PathComponent
        Parameters:
        distanceStyle - is the distance style.
        x - is the point x.
        y - is the point y.
        z - is the point z.
        Returns:
        the distance metric, in aggregation form.
      • pathDeltaDistance

        public double pathDeltaDistance​(DistanceStyle distanceStyle,
                                        double x,
                                        double y,
                                        double z)
        Description copied from interface: GeoStandardPath.PathComponent
        Compute delta path distance.
        Specified by:
        pathDeltaDistance in interface GeoStandardPath.PathComponent
        Parameters:
        distanceStyle - is the distance style.
        x - is the point x.
        y - is the point y.
        z - is the point z.
        Returns:
        the distance metric, in aggregation form.
      • intersects

        public boolean intersects​(Plane p,
                                  XYZBounds planeBounds,
                                  GeoPoint[] notablePoints,
                                  Membership[] bounds)
        Description copied from interface: GeoStandardPath.PathComponent
        Determine if this endpoint intersects a specified plane.
        Specified by:
        intersects in interface GeoStandardPath.PathComponent
        Parameters:
        p - is the plane.
        planeBounds - are the XYZBounds of the plane we're looking for an intersection with.
        notablePoints - are the points associated with the plane.
        bounds - are any bounds which the intersection must lie within.
        Returns:
        true if there is a matching intersection.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object