Class BoundingBox3d

java.lang.Object
org.jzy3d.maths.BoundingBox3d

public class BoundingBox3d extends Object
A BoundingBox3d stores a couple of maximal and minimal limit on each dimension (x, y, and z). It provides functions for enlarging the box by adding coordinates, Point3d, Polygon3d or an other BoundingBox3d (that is equivalent to computing the union of the current BoundingBox and another one).
Author:
Martin Pernollet
  • Field Details

    • xmin

      protected float xmin
    • xmax

      protected float xmax
    • ymin

      protected float ymin
    • ymax

      protected float ymax
    • zmin

      protected float zmin
    • zmax

      protected float zmax
  • Constructor Details

    • BoundingBox3d

      public BoundingBox3d()
      Initialize a BoundingBox by calling its reset method, leaving the box in an inconsitent state, with minimums = Float.MAX_VALUE and maximums = -Float.MAX_VALUE. In other words, calling box.valid() will return false.
    • BoundingBox3d

      public BoundingBox3d(List<Coord3d> coords)
    • BoundingBox3d

      public BoundingBox3d(Polygon polygon)
    • BoundingBox3d

      public BoundingBox3d(Coord3d center, float diameter)
    • BoundingBox3d

      public BoundingBox3d(BoundingBox3d box)
    • BoundingBox3d

      public BoundingBox3d(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax)
      Initialize a BoundingBox with raw values.
    • BoundingBox3d

      public BoundingBox3d(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
    • BoundingBox3d

      public BoundingBox3d(Range xRange, Range yRange, Range zRange)
    • BoundingBox3d

      public BoundingBox3d(float[] bounds)
    • BoundingBox3d

      public BoundingBox3d(double[] bounds)
  • Method Details

    • corners

      public Coord3d[] corners()
      Build an array of 8 coordinates indicating the 8 corners of the bounding box
      Returns:
    • reset

      public void reset()
      Initialize the bounding box with Float.MAX_VALUE as minimum value, and -Float.MAX_VALUE as maximum value for each dimension.
    • isReset

      public boolean isReset()
    • isPoint

      public boolean isPoint()
    • valid

      public boolean valid()
    • add

      public void add(float x, float y, float z)
      Adds an x,y,z point to the bounding box, and enlarge the bounding box if this points lies outside of it.
      Parameters:
      x -
      y -
      z -
    • add

      public void add(double x, double y, double z)
    • add

      public void add(Coord3d c)
      Add a Coord3d to the BoundingBox3d. A shortcut for: add(c.x, c.y, c.z);
      Parameters:
      p -
    • add

      public void add(List<Point> pts)
    • add

      public void add(Drawable drawable)
    • add

      public void add(Point p)
      Add a Point3d to the BoundingBox3d. A shortcut for: add(p.x, p.y, p.z);
      Parameters:
      p -
    • add

      public void add(Polygon p)
      Add the points of a Polygon to the BoundingBox3d.
      Parameters:
      p -
    • add

      public void add(BoundingBox3d b)
      Add a BoundingBox3d volume to the current one. A convenient shortcut for: add(b.xmin, b.ymin, b.zmin); add(b.xmax, b.ymax, b.zmax);
      Parameters:
      p -
    • getCenter

      public Coord3d getCenter()
      Compute and return the center point of the BoundingBox3d
      Returns:
      the center.
    • getTransformedCenter

      public Coord3d getTransformedCenter(SpaceTransformer transformers)
    • getRadius

      public double getRadius()
      Return the radius of the Sphere containing the Bounding Box, i.e., the distance between the center and the point (xmin, ymin, zmin).
      Returns:
      the box radius.
    • getTransformedRadius

      public double getTransformedRadius(SpaceTransformer transformers)
    • scale

      public BoundingBox3d scale(Coord3d scale)
      Return a copy of the current bounding box after scaling. Scaling does not modify the current bounding box.
      Returns:
      the scaled bounding box
    • shift

      public BoundingBox3d shift(Coord3d offset)
    • contains

      public boolean contains(BoundingBox3d b2)
      Return true if b2 is contained by this.
    • contains

      public boolean contains(Coord3d c)
    • intersect

      public boolean intersect(BoundingBox3d b2)
      Return true if intersect b2.
    • margin

      public BoundingBox3d margin(float margin)
      Add a margin to max values and substract a margin to min values
      Returns:
      a new bounding box
    • marginRatio

      public BoundingBox3d marginRatio(float marginRatio)
      Add a margin to max values and substract a margin to min values, where the margin is ratio of the current range of each dimension. Adding a margin of 10% for each dimension is done with
      invalid @link
      {@link #marginRatio(0.1)
      }
      Returns:
      a new bounding box
    • selfMargin

      public BoundingBox3d selfMargin(float margin)
    • selfMarginRatio

      public BoundingBox3d selfMarginRatio(float marginRatio)
    • getXRange

      public Range getXRange()
      Return range of X dimension.
    • getYRange

      public Range getYRange()
    • getZRange

      public Range getZRange()
    • getRange

      public Coord3d getRange()
      Return range of each dimension.
    • getXmin

      public float getXmin()
    • setXmin

      public void setXmin(float value)
    • getXmax

      public float getXmax()
    • setXmax

      public void setXmax(float value)
    • getYmin

      public float getYmin()
    • setYmin

      public void setYmin(float value)
    • getYmax

      public float getYmax()
    • setYmax

      public void setYmax(float value)
    • getZmin

      public float getZmin()
    • setZmin

      public void setZmin(float value)
    • getZmax

      public float getZmax()
    • setZmax

      public void setZmax(float value)
    • getVertices

      public List<Coord3d> getVertices()
    • apply

      public void apply(Transform transform)
    • getBounds_XY

      public BoundingBox2d getBounds_XY()
    • newBoundsAtOrigin

      public static BoundingBox3d newBoundsAtOrigin()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public String toString(int depth)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • clone

      public BoundingBox3d clone()
      Overrides:
      clone in class Object
    • transform

      public BoundingBox3d transform(SpaceTransformer transformers)
      Clone bounding box and apply transform to it
      Parameters:
      transformers -
      Returns:
    • getCorners

      public BoundingBox3d.Corners getCorners()