Class Bounds3d

    • Constructor Summary

      Constructors 
      Constructor Description
      Bounds3d​(double deltaX, double deltaY, double deltaZ)
      Constructs a new Bounds3d around the origin (0, 0, 0).
      Bounds3d​(double minX, double maxX, double minY, double maxY, double minZ, double maxZ)
      Construct a Bounds3d by providing all lower and upper bounds.
      Bounds3d​(Collection<Point3d> points)
      Construct a Bounds3d from a collection of Point3d, finding the lowest and highest x and y coordinates.
      Bounds3d​(Iterator<? extends Point3d> points)
      Construct a Bounds3d from some collection of points, finding the lowest and highest x and y coordinates.
      Bounds3d​(Drawable3d drawable3d)
      Construct a Bounds3d for a Drawable3d.
      Bounds3d​(Point3d[] points)
      Construct a Bounds3d from an array of Point3d, finding the lowest and highest x, y and z coordinates.
    • Constructor Detail

      • Bounds3d

        public Bounds3d​(double minX,
                        double maxX,
                        double minY,
                        double maxY,
                        double minZ,
                        double maxZ)
        Construct a Bounds3d by providing all lower and upper bounds.
        Parameters:
        minX - double; the lower bound for x
        maxX - double; the upper bound for x
        minY - double; the lower bound for y
        maxY - double; the upper bound for y
        minZ - double; the lower bound for z
        maxZ - double; the upper bound for z
        Throws:
        IllegalArgumentException - when lower bounds are larger than upper boundingBox or any bound is NaN
      • Bounds3d

        public Bounds3d​(double deltaX,
                        double deltaY,
                        double deltaZ)
        Constructs a new Bounds3d around the origin (0, 0, 0).
        Parameters:
        deltaX - double; the deltaX value around the origin
        deltaY - double; the deltaY value around the origin
        deltaZ - double; the deltaZ value around the origin
        Throws:
        IllegalArgumentException - when one of the delta values is less than zero
      • Bounds3d

        public Bounds3d​(Iterator<? extends Point3d> points)
        Construct a Bounds3d from some collection of points, finding the lowest and highest x and y coordinates.
        Parameters:
        points - Iterator<? extends Point3d>; the array of points to construct a Bounds3d from
        Throws:
        NullPointerException - when points is null
        IllegalArgumentException - when zero points are provided
      • Bounds3d

        public Bounds3d​(Drawable3d drawable3d)
                 throws NullPointerException
        Construct a Bounds3d for a Drawable3d.
        Parameters:
        drawable3d - Drawable3d; any object that implements the Drawable2d interface
        Throws:
        NullPointerException - when area is null
      • Bounds3d

        public Bounds3d​(Collection<Point3d> points)
        Construct a Bounds3d from a collection of Point3d, finding the lowest and highest x and y coordinates.
        Parameters:
        points - Collection<Point3d>; the collection of points to construct a Bounds2d from
        Throws:
        NullPointerException - when points is null
        IllegalArgumentException - when the collection is empty
    • Method Detail

      • getPoints

        public Iterator<Point3d> getPoints()
        Retrieve, or generate all points that make up the object.
        Specified by:
        getPoints in interface Drawable<Point3d,​Space3d>
        Returns:
        Iterable<Point2d>; an iterator that generates all points that make up the object
      • size

        public int size()
        Retrieve the number of points that make up the object.
        Specified by:
        size in interface Drawable<Point3d,​Space3d>
        Returns:
        int; the number of points that make up the object
      • contains

        public boolean contains​(Point3d point)
        Check if the Bounds3d contains a point. Contains returns false when the point is on the surface of this Bounds3d.
        Parameters:
        point - Point3d; the point
        Returns:
        boolean; whether the bounding box contains the point
        Throws:
        NullPointerException - when point is null
      • contains

        public boolean contains​(double x,
                                double y,
                                double z)
                         throws IllegalArgumentException
        Check if this Bounds3d contains a point. Contains returns false when the point is on the surface of this Bounds3d.
        Parameters:
        x - double; the x-coordinate of the point
        y - double; the y-coordinate of the point
        z - double; the z-coordinate of the point
        Returns:
        boolean; whether this Bounds3d contains the point
        Throws:
        IllegalArgumentException - when any of the coordinates is NaN
      • contains

        public boolean contains​(Drawable3d drawable)
        Check if the Bounds3d contains another Bounds3d. Contains returns false when one of the faces of the other Bounds3d is overlapping with the face of this Bounds3d.
        Parameters:
        drawable - Drawable3d; the Bounds3d for which to check if it is completely contained within this Bounds3d
        Returns:
        boolean; whether the bounding box contains the provided bounding box
        Throws:
        NullPointerException - when otherBounds3d is null
      • project

        public Bounds2d project()
        Project the object onto the z=0 plane.
        Specified by:
        project in interface Drawable3d
        Returns:
        Drawable2d; the projected object
      • covers

        public boolean covers​(double x,
                              double y,
                              double z)
                       throws IllegalArgumentException
        Check if this Bounds3d contains a point. Covers returns true when the point is on a face of this Bounds3d.
        Parameters:
        x - double; the x-coordinate of the point
        y - double; the y-coordinate of the point
        z - double; the z-coordinate of the point
        Returns:
        boolean; whether the bounding box contains the point, including the faces
        Throws:
        IllegalArgumentException - when any of the coordinates is NaN
      • covers

        public boolean covers​(Point3d point)
        Check if this Bounds3d contains a point. Covers returns true when the point is on a face of this Bounds3d.
        Parameters:
        point - Point3d; the point
        Returns:
        boolean; whether the bounding box contains the point, including the faces
        Throws:
        NullPointerException - when point is null
      • covers

        public boolean covers​(Bounds3d otherBounds3d)
        Check if this Bounds contains another Bounds. Covers returns true when one of the edges of the other Bounds (partly) overlaps a border of this Bounds.
        Specified by:
        covers in interface Bounds<Bounds3d,​Space3d>
        Parameters:
        otherBounds3d - B; the Bounds for which to check if it is contained within this Bounds
        Returns:
        boolean; whether this Bounds contains the provided Bounds, including overlapping borders
      • disjoint

        public boolean disjoint​(Bounds3d otherBounds3d)
        Return whether this Bounds is disjoint from another Bounds. Only touching at an edge is considered disjoint.
        Specified by:
        disjoint in interface Bounds<Bounds3d,​Space3d>
        Parameters:
        otherBounds3d - B; the other Bounds
        Returns:
        boolean; whether this Bounds is disjoint from another Bounds
      • intersects

        public boolean intersects​(Bounds3d otherBounds3d)
        Return whether this Bounds intersects another Bounds. Only touching at an edge is not seen as intersecting.
        Specified by:
        intersects in interface Bounds<Bounds3d,​Space3d>
        Parameters:
        otherBounds3d - B; the other Bounds
        Returns:
        boolean; whether this bounding rectangle intersects the other Bounds
      • intersection

        public Bounds3d intersection​(Bounds3d otherBounds3d)
        Return the intersecting Bounds of this Bounds and another Bounds. Touching at the edge is not seen as intersecting. In case there is no intersection, null is returned.
        Specified by:
        intersection in interface Bounds<Bounds3d,​Space3d>
        Parameters:
        otherBounds3d - B; the other Bounds
        Returns:
        Bounds; the intersecting Bounds of this Bounds and another Bounds. Touching at the edge is not seen as intersecting. If not intersecting; null is returned
      • getDeltaZ

        public double getDeltaZ()
        Return the extent of this Bounds3d in the z-direction.
        Returns:
        double; the extent of this Bounds3d in the z-direction
      • getVolume

        public double getVolume()
        Return the volume of this Bounds3d.
        Returns:
        double; the volume of this Bounds3d
      • getMinX

        public double getMinX()
        Return the lower bound for x.
        Specified by:
        getMinX in interface Bounds<Bounds3d,​Space3d>
        Returns:
        double; the lower bound for x
      • getMaxX

        public double getMaxX()
        Return the upper bound for x.
        Specified by:
        getMaxX in interface Bounds<Bounds3d,​Space3d>
        Returns:
        double; the upper bound for x
      • getMinY

        public double getMinY()
        Return the lower bound for y.
        Specified by:
        getMinY in interface Bounds<Bounds3d,​Space3d>
        Returns:
        double; the lower bound for y
      • getMaxY

        public double getMaxY()
        Return the upper bound for y.
        Specified by:
        getMaxY in interface Bounds<Bounds3d,​Space3d>
        Returns:
        double; the upper bound for y
      • getMinZ

        public double getMinZ()
        Return the lower bound for z.
        Returns:
        double; the lower bound for z
      • getMaxZ

        public double getMaxZ()
        Return the upper bound for z.
        Returns:
        double; the upper bound for z
      • midPoint

        public Point3d midPoint()
        Return the mid point of this Bounds3d.
        Returns:
        Point3d; the mid point of this Bounds3d
      • getBounds

        public Bounds3d getBounds()
        Retrieve the bounding box of the object.
        Specified by:
        getBounds in interface Drawable3d
        Returns:
        Bounds3d; the bounding box of the object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object