Package org.jzy3d.maths
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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
BoundingBox3d.Corners
-
Constructor Summary
Constructors Constructor Description 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.BoundingBox3d(double[] bounds)
BoundingBox3d(float[] bounds)
BoundingBox3d(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax)
Initialize a BoundingBox with raw values.BoundingBox3d(List<Coord3d> coords)
BoundingBox3d(BoundingBox3d box)
BoundingBox3d(Coord3d center, float diameter)
BoundingBox3d(Range xRange, Range yRange, Range zRange)
BoundingBox3d(Polygon polygon)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(double x, double y, double z)
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.void
add(List<Point> pts)
void
add(BoundingBox3d b)
Add a BoundingBox3d volume to the current one.void
add(Coord3d c)
Add a Coord3d to the BoundingBox3d.void
add(Drawable drawable)
void
add(Point p)
Add a Point3d to the BoundingBox3d.void
add(Polygon p)
Add the points of a Polygon to the BoundingBox3d.void
apply(Transform transform)
BoundingBox3d
clone()
boolean
contains(BoundingBox3d b2)
Return true if b2 is contained by this.boolean
contains(Coord3d c)
Coord3d[]
corners()
Build an array of 8 coordinates indicating the 8 corners of the bounding boxboolean
equals(Object obj)
BoundingBox2d
getBounds_XY()
Coord3d
getCenter()
Compute and return the center point of the BoundingBox3dBoundingBox3d.Corners
getCorners()
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).Coord3d
getRange()
Return range of each dimension.Coord3d
getTransformedCenter(SpaceTransformer transformers)
double
getTransformedRadius(SpaceTransformer transformers)
List<Coord3d>
getVertices()
float
getXmax()
float
getXmin()
Range
getXRange()
Return range of X dimension.float
getYmax()
float
getYmin()
Range
getYRange()
float
getZmax()
float
getZmin()
Range
getZRange()
int
hashCode()
boolean
intersect(BoundingBox3d b2)
Return true if intersect b2.boolean
isPoint()
boolean
isReset()
BoundingBox3d
margin(float margin)
Add a margin to max values and substract a margin to min valuesBoundingBox3d
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.static BoundingBox3d
newBoundsAtOrigin()
void
reset()
Initialize the bounding box with Float.MAX_VALUE as minimum value, and -Float.MAX_VALUE as maximum value for each dimension.BoundingBox3d
scale(Coord3d scale)
Return a copy of the current bounding box after scaling.BoundingBox3d
selfMargin(float margin)
BoundingBox3d
selfMarginRatio(float marginRatio)
void
setXmax(float value)
void
setXmin(float value)
void
setYmax(float value)
void
setYmin(float value)
void
setZmax(float value)
void
setZmin(float value)
BoundingBox3d
shift(Coord3d offset)
String
toString()
String
toString(int depth)
BoundingBox3d
transform(SpaceTransformer transformers)
Clone bounding box and apply transform to itboolean
valid()
-
-
-
Constructor Detail
-
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(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(float[] bounds)
-
BoundingBox3d
public BoundingBox3d(double[] bounds)
-
-
Method Detail
-
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(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 {@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)
-
apply
public void apply(Transform transform)
-
getBounds_XY
public BoundingBox2d getBounds_XY()
-
newBoundsAtOrigin
public static BoundingBox3d newBoundsAtOrigin()
-
toString
public String toString(int depth)
-
clone
public BoundingBox3d clone()
-
transform
public BoundingBox3d transform(SpaceTransformer transformers)
Clone bounding box and apply transform to it- Parameters:
transformers
-- Returns:
-
getCorners
public BoundingBox3d.Corners getCorners()
-
-