Interface Path3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>

    • Method Detail

      • computeCrossingsFromPath

        static int computeCrossingsFromPath​(int crossings,
                                            PathIterator3afp<?> iterator,
                                            BasicPathShadow3afp shadow,
                                            CrossingComputationType type)
        Accumulate the number of times the path crosses the shadow extending to the right of the second path. See the comment for the SHAPE_INTERSECTS constant for more complete details. The return value is the sum of all crossings for both the top and bottom of the shadow for every segment in the path, or the special value SHAPE_INTERSECTS if the path ever enters the interior of the rectangle. The path must start with a SEG_MOVETO, otherwise an exception is thrown. The caller must check r[xy]{min,max} for NaN values.
        Parameters:
        crossings - is the initial value for crossing.
        iterator - is the iterator on the path elements.
        shadow - is the description of the shape to project to the right.
        type - is the type of special computation to apply. If null, it is equivalent to CrossingComputationType.STANDARD.
        Returns:
        the crossings.
        See Also:
        "Weiler–Atherton clipping algorithm"
      • getClosestPointTo

        static void getClosestPointTo​(PathIterator3afp<? extends PathElement3afp> pi,
                                      double x,
                                      double y,
                                      double z,
                                      Point3D<?,​?> result)
        Replies the point on the path that is closest to the given point.

        CAUTION: This function works only on path iterators that are replying not-curved primitives, ie. if the PathIterator3D.isCurved() of pi is replying false. getClosestPointTo(Point3D) avoids this restriction.

        Parameters:
        pi - is the iterator on the elements of the path.
        x - x coordinate of the point.
        y - y coordinate of the point.
        z - z coordinate of the point.
        result - the closest point on the shape; or the point itself if it is inside the shape.
      • getClosestPointTo

        @Pure
        default P getClosestPointTo​(Sphere3afp<?,​?,​?,​?,​?,​?> sphere)
        Description copied from interface: Shape3afp
        Replies the closest point on this shape to the given sphere.

        If the two shapes are intersecting, the replied point is always at the intersection of the two shapes. This function does not enforce the meaning of the replied point in the case of shape intersection. In other words, this function is warranting that the reply point is the either the penetration point, nor a perimeter point, nor any point with a specific meaning.

        Specified by:
        getClosestPointTo in interface Shape3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        sphere - the sphere.
        Returns:
        the closest point on the shape; or the point itself if it is inside the shape.
      • getClosestPointTo

        @Pure
        default P getClosestPointTo​(RectangularPrism3afp<?,​?,​?,​?,​?,​?> rectangularPrism)
        Description copied from interface: Shape3afp
        Replies the closest point on this shape to the given rectangular prism.

        If the two shapes are intersecting, the replied point is always at the intersection of the two shapes. This function does not enforce the meaning of the replied point in the case of shape intersection. In other words, this function is warranting that the reply point is the either the penetration point, nor a perimeter point, nor any point with a specific meaning.

        Specified by:
        getClosestPointTo in interface Shape3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        rectangularPrism - the rectangular prism.
        Returns:
        the closest point on the shape; or the point itself if it is inside the shape.
      • getClosestPointTo

        @Pure
        default P getClosestPointTo​(Segment3afp<?,​?,​?,​?,​?,​?> segment)
        Description copied from interface: Shape3afp
        Replies the closest point on this shape to the given segment.

        If the two shapes are intersecting, the replied point is always at the intersection of the two shapes. This function does not enforce the meaning of the replied point in the case of shape intersection. In other words, this function is warranting that the reply point is the either the penetration point, nor a perimeter point, nor any point with a specific meaning.

        Specified by:
        getClosestPointTo in interface Shape3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        segment - the segment.
        Returns:
        the closest point on the shape; or the point itself if it is inside the shape.
      • getClosestPointTo

        @Pure
        default P getClosestPointTo​(Path3afp<?,​?,​?,​?,​?,​?> path)
        Description copied from interface: Shape3afp
        Replies the closest point on this shape to the given path.

        If the two shapes are intersecting, the replied point is always at the intersection of the two shapes. This function does not enforce the meaning of the replied point in the case of shape intersection. In other words, this function is warranting that the reply point is the either the penetration point, nor a perimeter point, nor any point with a specific meaning.

        Specified by:
        getClosestPointTo in interface Shape3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        path - the path.
        Returns:
        the closest point on the shape; or the point itself if it is inside the shape.
      • getFarthestPointTo

        static void getFarthestPointTo​(PathIterator3afp<? extends PathElement3afp> pi,
                                       double x,
                                       double y,
                                       double z,
                                       Point3D<?,​?> result)
        Replies the point on the path that is farthest to the given point.

        CAUTION: This function works only on path iterators that are replying not-curved primitives, ie. if the PathIterator3D.isCurved() of pi is replying false. getFarthestPointTo(Point3D) avoids this restriction.

        Parameters:
        pi - is the iterator on the elements of the path.
        x - x coordinate of the point.
        y - y coordinate of the point.
        z - z coordinate of the point.
        result - the fartheset point on the shape.
      • containsPoint

        static boolean containsPoint​(PathIterator3afp<? extends PathElement3afp> pi,
                                     double x,
                                     double y,
                                     double z)
        Tests if the specified coordinates are inside the closed boundary of the specified PathIterator3afp.

        This method provides a basic facility for implementors of the Shape3afp interface to implement support for the Shape3afp.contains(double, double, double) method.

        Parameters:
        pi - the specified PathIterator2f
        x - the specified X coordinate
        y - the specified Y coordinate
        z - the specified Z coordinate
        Returns:
        true if the specified coordinates are inside the specified PathIterator2f; false otherwise
      • containsRectangle

        static boolean containsRectangle​(PathIterator3afp<? extends PathElement3afp> pi,
                                         double rx,
                                         double ry,
                                         double rz,
                                         double rwidth,
                                         double rheight,
                                         double rdepth)
        Tests if the specified rectangle is inside the closed boundary of the specified PathIterator3afp.

        This method provides a basic facility for implementors of the Shape3afp interface to implement support for the Shape3afp.contains(RectangularPrism3afp) method.

        Parameters:
        pi - the specified PathIterator2f
        rx - the lowest corner of the rectangle.
        ry - the lowest corner of the rectangle.
        rz - the lowest corner of the rectangle.
        rwidth - is the width of the rectangle.
        rheight - is the width of the rectangle.
        rdepth - is the depth of the rectangle.
        Returns:
        true if the specified rectangle is inside the specified PathIterator2f; false otherwise.
      • intersectsPathIteratorRectangle

        static boolean intersectsPathIteratorRectangle​(PathIterator3afp<? extends PathElement3afp> pi,
                                                       double x,
                                                       double y,
                                                       double z,
                                                       double width,
                                                       double height,
                                                       double depth)
        Tests if the interior of the specified PathIterator3afp intersects the interior of a specified set of rectangular coordinates.
        Parameters:
        pi - the specified PathIterator3afp.
        x - the specified X coordinate of the rectangle.
        y - the specified Y coordinate of the rectangle.
        z - the specified Y coordinate of the rectangle.
        width - the width of the specified rectangular coordinates.
        height - the height of the specified rectangular coordinates.
        depth - the depth of the specified rectangular coordinates.
        Returns:
        true if the specified PathIterator3afp and the interior of the specified set of rectangular coordinates intersect each other; false otherwise.
      • computeCrossingsFromPoint

        static int computeCrossingsFromPoint​(int crossings,
                                             PathIterator3afp<? extends PathElement3afp> iterator,
                                             double px,
                                             double py,
                                             double pz,
                                             CrossingComputationType type)
        Calculates the number of times the given path crosses the ray extending to the right from (px,py). If the point lies on a part of the path, then no crossings are counted for that intersection. +1 is added for each crossing where the Y coordinate is increasing -1 is added for each crossing where the Y coordinate is decreasing The return value is the sum of all crossings for every segment in the path. The path must start with a MOVE_TO, otherwise an exception is thrown.
        Parameters:
        crossings - is the initial value for crossing.
        iterator - is the description of the path.
        px - is the reference point to test.
        py - is the reference point to test.
        pz - is the reference point to test.
        type - is the type of special computation to apply. If null, it is equivalent to CrossingComputationType.STANDARD.
        Returns:
        the crossing
      • computeCrossingsFromSphere

        static int computeCrossingsFromSphere​(int crossings,
                                              PathIterator3afp<? extends PathElement3afp> iterator,
                                              double cx,
                                              double cy,
                                              double cz,
                                              double radius,
                                              CrossingComputationType type)
        Calculates the number of times the given path crosses the given circle extending to the right.
        Parameters:
        crossings - is the initial value for crossing.
        iterator - is the description of the path.
        cx - is the center of the circle.
        cy - is the center of the circle.
        cz - is the center of the circle.
        radius - is the radius of the circle.
        type - is the type of special computation to apply. If null, it is equivalent to CrossingComputationType.STANDARD.
        Returns:
        the crossing
      • computeCrossingsFromSegment

        static int computeCrossingsFromSegment​(int crossings,
                                               PathIterator3afp<? extends PathElement3afp> iterator,
                                               double x1,
                                               double y1,
                                               double z1,
                                               double x2,
                                               double y2,
                                               double z2,
                                               CrossingComputationType type)
        Calculates the number of times the given path crosses the given segment extending to the right.
        Parameters:
        crossings - is the initial value for crossing.
        iterator - is the description of the path.
        x1 - is the first point of the segment.
        y1 - is the first point of the segment.
        z1 - is the first point of the segment.
        x2 - is the first point of the segment.
        y2 - is the first point of the segment.
        z2 - is the first point of the segment.
        type - is the type of special computation to apply. If null, it is equivalent to CrossingComputationType.STANDARD.
        Returns:
        the crossing
      • computeCrossingsFromRect

        static int computeCrossingsFromRect​(int crossings,
                                            PathIterator3afp<? extends PathElement3afp> iterator,
                                            double rxmin,
                                            double rymin,
                                            double rzmin,
                                            double rxmax,
                                            double rymax,
                                            double rzmax,
                                            CrossingComputationType type)
        Accumulate the number of times the path crosses the shadow extending to the right of the rectangle. See the comment for the SHAPE_INTERSECTS constant for more complete details. The return value is the sum of all crossings for both the top and bottom of the shadow for every segment in the path, or the special value SHAPE_INTERSECTS if the path ever enters the interior of the rectangle. The path must start with a SEG_MOVETO, otherwise an exception is thrown. The caller must check r[xy]{min,max} for NaN values.
        Parameters:
        crossings - is the initial value for crossing.
        iterator - is the iterator on the path elements.
        rxmin - is the first corner of the rectangle.
        rymin - is the first corner of the rectangle.
        rzmin - is the first corner of the rectangle.
        rxmax - is the second corner of the rectangle.
        rymax - is the second corner of the rectangle.
        rzmax - is the second corner of the rectangle.
        type - is the type of special computation to apply. If null, it is equivalent to CrossingComputationType.STANDARD.
        Returns:
        the crossings.
      • computeLength

        static double computeLength​(PathIterator3afp<?> iterator)
        Compute the total squared length of the path.
        Parameters:
        iterator - the iterator on the path elements.
        Returns:
        the squared length of the path.
      • add

        default void add​(Iterator<? extends PathElement3afp> iterator)
        Add the elements replied by the iterator into this path.
        Parameters:
        iterator - the iterator that provides the elements to add in the path.
      • set

        default void set​(Path3afp<?,​?,​?,​?,​?,​?> path)
        Set the path.
        Parameters:
        path - the path to copy.
      • moveTo

        void moveTo​(double x,
                    double y,
                    double z)
        Adds a point to the path by moving to the specified coordinates specified in double precision.
        Parameters:
        x - the specified X coordinate
        y - the specified Y coordinate
        z - the specified Y coordinate
      • lineTo

        void lineTo​(double x,
                    double y,
                    double z)
        Adds a point to the path by drawing a straight line from the current coordinates to the new specified coordinates specified in double precision.
        Parameters:
        x - the specified X coordinate
        y - the specified Y coordinate
        z - the specified Y coordinate
      • lineTo

        default void lineTo​(Point3D<?,​?> to)
        Description copied from interface: Path3D
        Adds a point to the path by drawing a straight line from the current coordinates to the new specified coordinates specified in double precision.
        Specified by:
        lineTo in interface Path3D<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        to - the end point
      • quadTo

        void quadTo​(double x1,
                    double y1,
                    double z1,
                    double x2,
                    double y2,
                    double z2)
        Adds a curved segment, defined by two new points, to the path by drawing a Quadratic curve that intersects both the current coordinates and the specified coordinates (x2,y2), using the specified point (x1,y1) as a quadratic parametric control point. All coordinates are specified in double precision.
        Parameters:
        x1 - the X coordinate of the quadratic control point
        y1 - the Y coordinate of the quadratic control point
        z1 - the Z coordinate of the quadratic control point
        x2 - the X coordinate of the final end point
        y2 - the Y coordinate of the final end point
        z2 - the Y coordinate of the final end point
      • quadTo

        default void quadTo​(Point3D<?,​?> ctrl,
                            Point3D<?,​?> to)
        Description copied from interface: Path3D
        Adds a curved segment, defined by two new points, to the path by drawing a Quadratic curve that intersects both the current coordinates and the specified coordinates (x2,y2), using the specified point (x1,y1) as a quadratic parametric control point. All coordinates are specified in double precision.
        Specified by:
        quadTo in interface Path3D<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        ctrl - the quadratic control point
        to - the final end point
      • curveTo

        void curveTo​(double x1,
                     double y1,
                     double z1,
                     double x2,
                     double y2,
                     double z2,
                     double x3,
                     double y3,
                     double z3)
        Adds a curved segment, defined by three new points, to the path by drawing a Bézier curve that intersects both the current coordinates and the specified coordinates (x3,y3), using the specified points (x1,y1) and (x2,y2) as Bézier control points. All coordinates are specified in double precision.
        Parameters:
        x1 - the X coordinate of the first Bézier control point
        y1 - the Y coordinate of the first Bézier control point
        z1 - the Z coordinate of the first Bézier control point
        x2 - the X coordinate of the second Bézier control point
        y2 - the Y coordinate of the second Bézier control point
        z2 - the Z coordinate of the second Bézier control point
        x3 - the X coordinate of the final end point
        y3 - the Y coordinate of the final end point
        z3 - the Z coordinate of the final end point
      • curveTo

        default void curveTo​(Point3D<?,​?> ctrl1,
                             Point3D<?,​?> ctrl2,
                             Point3D<?,​?> to)
        Description copied from interface: Path3D
        Adds a curved segment, defined by three new points, to the path by drawing a Bézier curve that intersects both the current coordinates and the specified coordinates (x3,y3), using the specified points (x1,y1) and (x2,y2) as Bézier control points. All coordinates are specified in double precision.
        Specified by:
        curveTo in interface Path3D<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        ctrl1 - the first Bézier control point
        ctrl2 - the second Bézier control point
        to - the final end point
      • getDistanceSquared

        @Pure
        default double getDistanceSquared​(Point3D<?,​?> point)
        Description copied from interface: Shape3D
        Replies the squared value of the minimal distance from this shape to the given point.
        Specified by:
        getDistanceSquared in interface Shape3D<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        point - the point.
        Returns:
        squared value of the minimal distance between this shape and the point.
      • getDistanceLinf

        @Pure
        default double getDistanceLinf​(Point3D<?,​?> point)
        Description copied from interface: Shape3D
        Computes the L-infinite distance between this shape and point p1. The L-infinite distance is equal to MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2)].
        Specified by:
        getDistanceLinf in interface Shape3D<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        point - the point.
        Returns:
        the distance.
      • contains

        @Pure
        default boolean contains​(double x,
                                 double y,
                                 double z)
        Description copied from interface: Shape3afp
        Replies if the given point is inside this shape.
        Specified by:
        contains in interface Shape3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        x - x coordinate of the point to test.
        y - y coordinate of the point to test.
        z - z coordinate of the point to test.
        Returns:
        true if the given point is inside this shape, otherwise false.
      • intersects

        @Pure
        default boolean intersects​(Sphere3afp<?,​?,​?,​?,​?,​?> sphere)
        Description copied from interface: Shape3afp
        Replies if this shape is intersecting the given circle.
        Specified by:
        intersects in interface Shape3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        sphere - the sphere
        Returns:
        true if this shape is intersecting the given shape; false if there is no intersection.
      • intersects

        @Pure
        default boolean intersects​(MultiShape3afp<?,​?,​?,​?,​?,​?,​?> multishape)
        Description copied from interface: Shape3afp
        Replies if this shape is intersecting the given multishape.
        Specified by:
        intersects in interface Shape3afp<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        multishape - the multishape
        Returns:
        true if this shape is intersecting the given shape; false if there is no intersection.
      • getCoordAt

        @Pure
        double getCoordAt​(int index)
        Replies the coordinate at the given index. The index is in [0;Path3D.size()*2).
        Parameters:
        index - the index.
        Returns:
        the coordinate at the given index.
      • setLastPoint

        void setLastPoint​(double x,
                          double y,
                          double z)
        Change the coordinates of the last inserted point.
        Parameters:
        x - the new x coordinate of the last point.
        y - the new y coordinate of the last point.
        z - the new z coordinate of the last point.
      • getPathIterator

        @Pure
        default PathIterator3afp<IE> getPathIterator​(double flatness)
        Description copied from interface: Path3D
        Replies an iterator on the path elements.

        Only PathElementType.MOVE_TO, PathElementType.LINE_TO, and PathElementType.CLOSE types are returned by the iterator.

        The amount of subdivision of the curved segments is controlled by the flatness parameter, which specifies the maximum distance that any point on the unflattened transformed curve can deviate from the returned flattened path segments. Note that a limit on the accuracy of the flattened path might be silently imposed, causing very small flattening parameters to be treated as larger values. This limit, if there is one, is defined by the particular implementation that is used.

        The iterator for this class is not multi-threaded safe.

        Specified by:
        getPathIterator in interface Path3D<ST extends Shape3afp<?,​?,​IE,​P,​V,​B>,​IT extends Path3afp<?,​?,​IE,​P,​V,​B>,​IE extends PathElement3afp,​P extends Point3D<? super P,​? super V>,​V extends Vector3D<? super V,​? super P>,​B extends RectangularPrism3afp<?,​?,​IE,​P,​V,​B>>
        Parameters:
        flatness - is the maximum distance that the line segments used to approximate the curved segments are allowed to deviate from any point on the original curve.
        Returns:
        an iterator on the path elements.
      • getPathIterator

        @Pure
        default PathIterator3afp<IE> getPathIterator​(Transform3D transform,
                                                     double flatness)
        Replies an iterator on the path elements.

        Only PathElementType.MOVE_TO, PathElementType.LINE_TO, and PathElementType.CLOSE types are returned by the iterator.

        The amount of subdivision of the curved segments is controlled by the flatness parameter, which specifies the maximum distance that any point on the unflattened transformed curve can deviate from the returned flattened path segments. Note that a limit on the accuracy of the flattened path might be silently imposed, causing very small flattening parameters to be treated as larger values. This limit, if there is one, is defined by the particular implementation that is used.

        The iterator for this class is not multi-threaded safe.

        Parameters:
        transform - is an optional affine Transform3D to be applied to the coordinates as they are returned in the iteration, or null if untransformed coordinates are desired.
        flatness - is the maximum distance that the line segments used to approximate the curved segments are allowed to deviate from any point on the original curve.
        Returns:
        an iterator on the path elements.
      • getCurrentX

        @Pure
        double getCurrentX()
        Replies the x coordinate of the last point in the path.
        Returns:
        the x coordinate of the last point in the path.
      • getCurrentY

        @Pure
        double getCurrentY()
        Replies the y coordinate of the last point in the path.
        Returns:
        the y coordinate of the last point in the path.
      • getCurrentZ

        @Pure
        double getCurrentZ()
        Replies the z coordinate of the last point in the path.
        Returns:
        the z coordinate of the last point in the path.
      • remove

        boolean remove​(double x,
                       double y,
                       double z)
        Remove the point with the given coordinates.

        If the given coordinates do not match exactly a point in the path, nothing is removed.

        Parameters:
        x - the x coordinate of the ponit to remove.
        y - the y coordinate of the ponit to remove.
        z - the z coordinate of the ponit to remove.
        Returns:
        true if the point was removed; false otherwise.