lsst.sphgeom g99f1e191f7+663e2227e0
Loading...
Searching...
No Matches
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
Box3d & dilateBy (double r)
Box3d dilatedBy (double r) const
Box3d & dilateBy (double w, double h, double d)
Box3d dilatedBy (double w, double h, double d) const
Box3d & erodeBy (double r)
Box3d erodedBy (double r) const
Box3d & erodeBy (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
Box3d & clipTo (Vector3d const &b)
Box3d & clipTo (Box3d const &b)
Box3d clippedTo (Vector3d const &b) const
Box3d clippedTo (Box3d const &b) const
Box3d & expandTo (Vector3d const &b)
Box3d & expandTo (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: