lsst.sphgeom gbbfe4432f0+164b02c8d4
Public Member Functions | Static Public Member Functions | List of all members
lsst::sphgeom::Box3d Class Reference

#include <Box3d.h>

Public Member Functions

 Box3d ()
 This constructor creates an empty 3D box.
 
 Box3d (Vector3d const &v)
 This constructor creates a box containing a single point.
 
 Box3d (Vector3d const &v1, Vector3d const &v2)
 
 Box3d (Vector3d const &v, double w, double h, double d)
 
 Box3d (Interval1d const &x, Interval1d const &y, Interval1d const &z)
 
bool operator== (Box3d const &b) const
 Two 3D boxes are equal if they contain the same points.
 
bool operator!= (Box3d const &b) const
 
bool operator== (Vector3d const &v) const
 A box is equal to a point if it contains only that point.
 
bool operator!= (Vector3d const &v) const
 
Interval1d operator() (int i) const
 The function call operator returns the i-th interval of this box.
 
Interval1d const & x () const
 
Interval1d const & y () const
 
Interval1d const & z () const
 
bool isEmpty () const
 isEmpty returns true if this box does not contain any points.
 
bool isFull () const
 isFull returns true if this box contains all points in ℝ³.
 
Vector3d getCenter () const
 
double getWidth () const
 
double getHeight () const
 
double getDepth () const
 
Box3ddilateBy (double r)
 
Box3d dilatedBy (double r) const
 
Box3ddilateBy (double w, double h, double d)
 
Box3d dilatedBy (double w, double h, double d) const
 
Box3derodeBy (double r)
 
Box3d erodedBy (double r) const
 
Box3derodeBy (double w, double h, double d)
 
Box3d erodedBy (double w, double h, double d) const
 
Relationship relate (Vector3d const &v) const
 
Relationship relate (Box3d const &b) const
 
bool contains (Vector3d const &b) const
 
bool contains (Box3d const &b) const
 
bool contains (double x_, double y_, double z_) const
 
bool isDisjointFrom (Vector3d const &b) const
 
bool isDisjointFrom (Box3d const &b) const
 
bool intersects (Vector3d const &b) const
 
bool intersects (Box3d const &b) const
 
bool isWithin (Vector3d const &b) const
 
bool isWithin (Box3d const &b) const
 
Box3dclipTo (Vector3d const &b)
 
Box3dclipTo (Box3d const &b)
 
Box3d clippedTo (Vector3d const &b) const
 
Box3d clippedTo (Box3d const &b) const
 
Box3dexpandTo (Vector3d const &b)
 
Box3dexpandTo (Box3d const &b)
 
Box3d expandedTo (Vector3d const &b) const
 
Box3d expandedTo (Box3d const &b) const
 

Static Public Member Functions

static Box3d empty ()
 
static Box3d full ()
 
static Box3d aroundUnitSphere ()
 aroundUnitSphere returns a minimal Box3d containing the unit sphere.
 

Detailed Description

Box3d represents a box in ℝ³. It is the Cartesian product of three intervals of ℝ.

Constructor & Destructor Documentation

◆ Box3d() [1/3]

lsst::sphgeom::Box3d::Box3d ( Vector3d const &  v1,
Vector3d const &  v2 
)
inline

This constructor creates a box spanning the intervals [v1.x(), v2.x()], [v1.y(), v2.y()], and [v1.z(), v2.z()].

◆ Box3d() [2/3]

lsst::sphgeom::Box3d::Box3d ( Vector3d const &  v,
double  w,
double  h,
double  d 
)
inline

This constructor creates a box with center v, half-width w, half-height h, and half-depth d.

◆ Box3d() [3/3]

lsst::sphgeom::Box3d::Box3d ( Interval1d const &  x,
Interval1d const &  y,
Interval1d const &  z 
)
inline

This constructor creates a box spanning the given x, y, and z intervals.

Member Function Documentation

◆ clippedTo()

Box3d lsst::sphgeom::Box3d::clippedTo ( Vector3d const &  b) const
inline

clippedTo returns the intersection of this box and b.

◆ clipTo()

Box3d & lsst::sphgeom::Box3d::clipTo ( Vector3d const &  b)
inline

clipTo sets this box to the intersection of this box and b.

◆ contains()

bool lsst::sphgeom::Box3d::contains ( Vector3d const &  b) const
inline

contains returns true iff the intersection of this box and b is equal to b.

◆ dilateBy() [1/2]

Box3d & lsst::sphgeom::Box3d::dilateBy ( double  r)
inline

dilateBy minimally expands or shrinks this Box to include or remove all points within distance |r| of its boundary.

If this box is empty or full, or if r is zero, there is no effect. If r is positive, points are added, and if r is negative they are removed.

◆ dilateBy() [2/2]

Box3d & lsst::sphgeom::Box3d::dilateBy ( double  w,
double  h,
double  d 
)
inline

dilateBy morphologically dilates or erodes the x, y, and z intervals of this box by w, h, and d. If w is positive, the x interval is dilated by [-w,w]. If w is zero, the corresponding interval is not modified, and if it is negative, the longitude interval is eroded by [w,-w]. The action of h and d on the y and z intervals is analogous.

If this box is empty or full, there is no effect.

◆ expandedTo()

Box3d lsst::sphgeom::Box3d::expandedTo ( Vector3d const &  b) const
inline

expandedTo returns the smallest box containing the union of this box and b.

◆ expandTo()

Box3d & lsst::sphgeom::Box3d::expandTo ( Vector3d const &  b)
inline

expandTo minimally expands this box to contain b.

◆ getCenter()

Vector3d lsst::sphgeom::Box3d::getCenter ( ) const
inline

getCenter returns the center of this box. An arbitrary vector is returned for boxes that are empty or full.

◆ getDepth()

double lsst::sphgeom::Box3d::getDepth ( ) const
inline

getDepth returns the depth (z-axis extent) of this box. It is negative or NaN for empty boxes, and infinite for full boxes.

◆ getHeight()

double lsst::sphgeom::Box3d::getHeight ( ) const
inline

getHeight returns the height (y-axis extent) of this box. It is negative or NaN for empty boxes, and infinite for full boxes.

◆ getWidth()

double lsst::sphgeom::Box3d::getWidth ( ) const
inline

getWidth returns the width (x-axis extent) of this box. It is negative or NaN for empty boxes, and infinite for full boxes.

◆ intersects()

bool lsst::sphgeom::Box3d::intersects ( Vector3d const &  b) const
inline

intersects returns true iff the intersection of this box and b is non-empty.

◆ isDisjointFrom()

bool lsst::sphgeom::Box3d::isDisjointFrom ( Vector3d const &  b) const
inline

isDisjointFrom returns true iff the intersection of this box and b is empty.

◆ isWithin()

bool lsst::sphgeom::Box3d::isWithin ( Vector3d const &  b) const
inline

isWithin returns true if the intersection of this box and b is this box.


The documentation for this class was generated from the following file: