Rhino C++ API  8.14
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
ON_BoundingBox Class Reference

#include <opennurbs_bounding_box.h>

Public Member Functions

 ON_BoundingBox () ON_NOEXCEPT
 creates EmptyBoundingBox More...
 
 ON_BoundingBox (const ON_3dPoint &, const ON_3dPoint &)
 
 ON_BoundingBox (const ON_BoundingBox &)=default
 
 ~ON_BoundingBox ()=default
 
double Area () const
 
ON_3dPoint Center () const
 
ON_3dPoint ClosestPoint (const ON_3dPoint &test_point) const
 
ON_3dPoint Corner (int, int, int) const
 
void Destroy ()
 OBSOLETE. More...
 
ON_3dVector Diagonal () const
 max corner - min corner More...
 
void Dump (class ON_TextLog &) const
 
ON_Line Edge (unsigned int index) const
 
bool Expand (ON_3dVector delta)
 
ON_3dPoint FarPoint (const ON_3dPoint &) const
 Point on the box that is farthest from the test_point. More...
 
bool GetClosestPoint (const ON_BoundingBox &, ON_3dPoint &, ON_3dPoint &) const
 
int GetClosestPoint (const ON_Line &, ON_3dPoint &, double *, double *) const
 
bool GetCorners (ON_3dPoint box_corners[8]) const
 
bool GetCorners (ON_3dPointArray &box_corners) const
 
bool GetEdges (ON_Line edges[12]) const
 
bool GetFarPoint (const ON_BoundingBox &, ON_3dPoint &, ON_3dPoint &) const
 Get points on bounding boxes that are farthest from each other. More...
 
bool Includes (const ON_BoundingBox &other, bool bProperSubSet=false) const
 
bool Intersection (const ON_BoundingBox &bbox_A, const ON_BoundingBox &bbox_B)
 
bool Intersection (const ON_BoundingBox &other_bbox)
 
bool Intersection (const ON_Line &, double *=nullptr, double *=nullptr) const
 
int IsDegenerate (double tolerance=ON_UNSET_VALUE) const
 
bool IsDisjoint (const ON_BoundingBox &other_bbox) const
 
bool IsDisjoint (const ON_Line &line) const
 
bool IsDisjoint (const ON_Line &line, bool infinite) const
 
bool IsEmpty () const
 (m_min.x > m_max.x || m_min.y > m_max.y || m_min.z > m_max.z) && IsSet(); More...
 
bool IsFartherThan (double d, const ON_3dPoint &P) const
 
bool IsFartherThan (double d, const ON_BoundingBox &other) const
 
bool IsFartherThan (double d, const ON_Line &line) const
 
bool IsFartherThan (double d, const ON_Plane &plane) const
 
bool IsFartherThan (double d, const ON_PlaneEquation &plane_equation) const
 
bool IsNan () const
 some coordinate is a NAN More...
 
bool IsNotEmpty () const
 (m_min.x <= m_max.x && m_min.y <= m_max.y && m_min.z <= m_max.z) && IsSet() More...
 
bool IsPoint () const
 (m_min.x == m_max.x && m_min.y == m_max.y && m_min.z == m_max.z) && IsSet() More...
 
bool IsPointIn (const ON_3dPoint &test_point, int bStrictlyIn=false) const
 
bool IsSet () const
 every coordinate is a finite, valid double, not ON_UNSET_VALUE and not ON_UNSET_POSITIVE_VALUE More...
 
bool IsUnset () const
 some coordinate is ON_UNSET_VALUE or ON_UNSET_POSITIVE_VALUE More...
 
bool IsUnsetOrNan () const
 = IsUnset() or IsNan() More...
 
bool IsValid () const
 OBSOLETE IsValid() = IsNotEmpty() More...
 
int IsVisible (const ON_Xform &bbox2c) const
 
ON_3dPoint Max () const
 
double MaximumDistanceTo (const ON_3dPoint &P) const
 
double MaximumDistanceTo (const ON_BoundingBox &other) const
 
double MaximumDistanceTo (const ON_Line &line) const
 
double MaximumDistanceTo (const ON_Plane &plane) const
 
double MaximumDistanceTo (const ON_PlaneEquation &plane_equation) const
 
ON_3dPoint Min () const
 
double MinimumDistanceTo (const ON_3dPoint &P) const
 
double MinimumDistanceTo (const ON_BoundingBox &other) const
 
double MinimumDistanceTo (const ON_Line &line) const
 
double MinimumDistanceTo (const ON_Plane &plane) const
 
double MinimumDistanceTo (const ON_PlaneEquation &plane_equation) const
 
ON_BoundingBoxoperator= (const ON_BoundingBox &)=default
 
ON_3dPointoperator[] (int)
 operator[] returns min if index <= 0 and max if index >= 1 More...
 
const ON_3dPointoperator[] (int) const
 
bool Set (const ON_2dPoint &point, int bGrowBox=false)
 
bool Set (const ON_2fPoint &point, int bGrowBox=false)
 
bool Set (const ON_3dPoint &point, int bGrowBox=false)
 
bool Set (const ON_3fPoint &point, int bGrowBox=false)
 
bool Set (const ON_SimpleArray< ON_2dPoint > &point_array, int bGrowBox=false)
 
bool Set (const ON_SimpleArray< ON_2fPoint > &point_array, int bGrowBox=false)
 
bool Set (const ON_SimpleArray< ON_3dPoint > &point_array, int bGrowBox=false)
 
bool Set (const ON_SimpleArray< ON_3fPoint > &point_array, int bGrowBox=false)
 
bool Set (const ON_SimpleArray< ON_4dPoint > &point_array, int bGrowBox=false)
 
bool Set (const ON_SimpleArray< ON_4fPoint > &point_array, int bGrowBox=false)
 
bool Set (int dim, bool is_rat, int count, int stride, const double *point_array, int bGrowBox=false)
 
bool Set (int dim, bool is_rat, int count, int stride, const float *point_array, int bGrowBox=false)
 
bool Shrink (ON_3dVector delta)
 
bool SwapCoordinates (int, int)
 
double Tolerance () const
 
bool Transform (const ON_Xform &)
 
bool Union (const ON_BoundingBox &)
 
bool Union (const ON_BoundingBox &, const ON_BoundingBox &)
 
double Volume () const
 

Public Attributes

ON_3dPoint m_max
 
ON_3dPoint m_min
 

Static Public Attributes

static const ON_BoundingBox EmptyBoundingBox
 ((1.0,0.0,0.0),(-1.0,0.0,0.0)) More...
 
static const ON_BoundingBox NanBoundingBox
 all coordinates are ON_DBL_QNAN More...
 
static const ON_BoundingBox UnsetBoundingBox
 all coordinates are ON_UNSET_VALUE More...
 

Detailed Description

Copyright (c) 1993-2022 Robert McNeel & Associates. All rights reserved. OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert McNeel & Associates.

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.

For complete openNURBS copyright information see http://www.opennurbs.org. ON_BoundingBox - axis aligned bounding box

Constructor & Destructor Documentation

◆ ON_BoundingBox() [1/3]

ON_BoundingBox::ON_BoundingBox ( )

creates EmptyBoundingBox

◆ ~ON_BoundingBox()

ON_BoundingBox::~ON_BoundingBox ( )
default

◆ ON_BoundingBox() [2/3]

ON_BoundingBox::ON_BoundingBox ( const ON_BoundingBox )
default

◆ ON_BoundingBox() [3/3]

ON_BoundingBox::ON_BoundingBox ( const ON_3dPoint ,
const ON_3dPoint  
)
explicit

Member Function Documentation

◆ Area()

double ON_BoundingBox::Area ( ) const

◆ Center()

ON_3dPoint ON_BoundingBox::Center ( ) const

◆ ClosestPoint()

ON_3dPoint ON_BoundingBox::ClosestPoint ( const ON_3dPoint test_point) const

Point on or in the box that is closest to test_point. If test_point is in or on the box, the test_point is returned.

◆ Corner()

ON_3dPoint ON_BoundingBox::Corner ( int  ,
int  ,
int   
) const

◆ Destroy()

void ON_BoundingBox::Destroy ( )

OBSOLETE.

set this = ON_BoundingBox::EmptyBoundingBox

◆ Diagonal()

ON_3dVector ON_BoundingBox::Diagonal ( ) const

max corner - min corner

◆ Dump()

void ON_BoundingBox::Dump ( class ON_TextLog ) const

◆ Edge()

ON_Line ON_BoundingBox::Edge ( unsigned int  index) const

Parameters: index - in the index of the edge Returns: Line segments, some possibly a single point.

Parameters
indexthe index of the requested edge.

◆ Expand()

bool ON_BoundingBox::Expand ( ON_3dVector  delta)

Description: Expand the box by adding delta to m_max and subtracting it from m_min. So, when delta is positive and the interval is increasing this function expands the box on each side. Returns: true if the result is Valid.

◆ FarPoint()

ON_3dPoint ON_BoundingBox::FarPoint ( const ON_3dPoint ) const

Point on the box that is farthest from the test_point.

◆ GetClosestPoint() [1/2]

bool ON_BoundingBox::GetClosestPoint ( const ON_BoundingBox ,
ON_3dPoint ,
ON_3dPoint  
) const

Get points on bounding boxes that are closest to each other. If the boxes intersect, then the point at the centroid of the intersection is returned for both points.

◆ GetClosestPoint() [2/2]

int ON_BoundingBox::GetClosestPoint ( const ON_Line ,
ON_3dPoint ,
double *  ,
double *   
) const

Description: Get point in a bounding box that is closest to a line segment. Parameters: line - [in] line segment box_point - [out] point in box that is closest to line segment point at t0. t0 - [out] parameter of point on line that is closest to the box. t1 - [out] parameter of point on line that is closest to the box. Returns: 3 success - line segments intersects box in a segment from line(t0) to line(t1) (t0 < t1) 2 success - line segments intersects box in a single point at line(t0) (t0==t1) 1 success - line segment does not intersect box. Closest point on the line is at line(t0) (t0==t1) 0 failure - box is invalid. Remarks: The box is treated as a solid box. If the intersection of the line segment, then 3 is returned.

◆ GetCorners() [1/2]

bool ON_BoundingBox::GetCorners ( ON_3dPoint  box_corners[8]) const
Parameters
box_cornersreturns list of 8 corner points

◆ GetCorners() [2/2]

bool ON_BoundingBox::GetCorners ( ON_3dPointArray box_corners) const
Parameters
box_cornersreturns list of 8 corner points

◆ GetEdges()

bool ON_BoundingBox::GetEdges ( ON_Line  edges[12]) const

Parameters: edges[] - out 12 edge lines. If the bounding box has no height, width or depth, then the corresponding edges will have the same "from" and "to" points. Returns: If the bounding box is valid, then true is returned and 12 line segments, some possibly a single point, are returned. Otherwise false is returned and 12 line segments with "from" and "to" points set to ON_3dPoint::UnsetPoint are returned.

Parameters
edgesreturns list of 12 edge segments

◆ GetFarPoint()

bool ON_BoundingBox::GetFarPoint ( const ON_BoundingBox ,
ON_3dPoint ,
ON_3dPoint  
) const

Get points on bounding boxes that are farthest from each other.

◆ Includes()

bool ON_BoundingBox::Includes ( const ON_BoundingBox other,
bool  bProperSubSet = false 
) const

Description: Test a box to see if it is contained in this box. Parameters: other - [in] box to test bProperSubSet - [in] if true, then the test is for a proper inclusion. Returns: If bProperSubSet is false, then the result is true when this->m_min[i] <= other.m_min[i] and other.m_max[i] <= this->m_max[i]. for i=0,1 and 2. If bProperSubSet is true, then the result is true when the above condition is true and at least one of the inequalities is strict.

◆ Intersection() [1/3]

bool ON_BoundingBox::Intersection ( const ON_BoundingBox bbox_A,
const ON_BoundingBox bbox_B 
)

Description: Set "this" to the intersection of bbox_A and bbox_B. Parameters: bbox_A - [in] bbox_B - [in] Returns: True if the "this" is a non-empty valid bounding box. False if the intersection is empty, in which case "this" is set to an invalid bounding box. Remarks: If bbox_A or bbox_B is invalid, they are treated as the empty set, and false is returned.

Parameters
bbox_Athis = intersection of two args

◆ Intersection() [2/3]

bool ON_BoundingBox::Intersection ( const ON_BoundingBox other_bbox)

Description: Intersect this with other_bbox and save intersection in this. Parameters: other_bbox - [in] Returns: True if this-intersect-other_bbox is a non-empty valid bounding box and this is set. False if the intersection is empty, in which case "this" is set to an invalid bounding box. Remarks: If "this" or other_bbox is invalid, they are treated as the empty set, and false is returned.

◆ Intersection() [3/3]

bool ON_BoundingBox::Intersection ( const ON_Line ,
double *  = nullptr,
double *  = nullptr 
) const

◆ IsDegenerate()

int ON_BoundingBox::IsDegenerate ( double  tolerance = ON_UNSET_VALUE) const

Description: Test a bounding box to see if it is degenerate (flat) in one or more directions. Parameters: tolerance - [in] Distances <= tolerance will be considered to be zero. If tolerance is negative (default), then a scale invariant tolerance is used. Returns: @untitled table 0 box is not degenerate 1 box is a rectangle (degenerate in one direction) 2 box is a line (degenerate in two directions) 3 box is a point (degenerate in three directions) 4 box is not valid

◆ IsDisjoint() [1/3]

bool ON_BoundingBox::IsDisjoint ( const ON_BoundingBox other_bbox) const

Description: Test to see if "this" and other_bbox are disjoint (do not intersect). Parameters: other_bbox - [in] Returns: True if "this" and other_bbox are disjoint. Remarks: If "this" or other_bbox is invalid, then true is returned.

◆ IsDisjoint() [2/3]

bool ON_BoundingBox::IsDisjoint ( const ON_Line line) const

Description: Test to see if "this" and line are disjoint (do not intersect or line is included). Parameters: line - [in] infinite - [in] if false or not provided, then the line is considered bounded by start and end points. Returns: True if "this" and line are disjoint.

◆ IsDisjoint() [3/3]

bool ON_BoundingBox::IsDisjoint ( const ON_Line line,
bool  infinite 
) const

◆ IsEmpty()

bool ON_BoundingBox::IsEmpty ( ) const

(m_min.x > m_max.x || m_min.y > m_max.y || m_min.z > m_max.z) && IsSet();

◆ IsFartherThan() [1/5]

bool ON_BoundingBox::IsFartherThan ( double  d,
const ON_3dPoint P 
) const

Description: Quickly determine if the shortest distance from the point P to the bounding box is greater than d. Parameters: d - [in] distance (> 0.0) P - [in] Returns: True if if the shortest distance from the point P to the bounding box is greater than d.

◆ IsFartherThan() [2/5]

bool ON_BoundingBox::IsFartherThan ( double  d,
const ON_BoundingBox other 
) const

Description: Quickly determine if the shortest distance this bounding box to another bounding box is greater than d. Parameters: d - [in] distance (> 0.0) other - [in] other bounding box Returns: True if if the shortest distance from this bounding box to the other bounding box is greater than d.

◆ IsFartherThan() [3/5]

bool ON_BoundingBox::IsFartherThan ( double  d,
const ON_Line line 
) const

Description: Quickly determine if the shortest distance from the line to the bounding box is greater than d. Parameters: d - [in] distance (> 0.0) line - [in] Returns: True if the shortest distance from the line to the bounding box is greater than d. It is not the case that false means that the shortest distance is less than or equal to d.

◆ IsFartherThan() [4/5]

bool ON_BoundingBox::IsFartherThan ( double  d,
const ON_Plane plane 
) const

Description: Quickly determine if the shortest distance from the plane to the bounding box is greater than d. Parameters: d - [in] distance (> 0.0) plane - [in] Returns: True if the shortest distance from the plane to the bounding box is greater than d, and false if the shortest distance is less than or equal to d.

◆ IsFartherThan() [5/5]

bool ON_BoundingBox::IsFartherThan ( double  d,
const ON_PlaneEquation plane_equation 
) const

Description: Quickly determine if the shortest distance from the plane to the bounding box is greater than d. Parameters: d - [in] distance (> 0.0) plane_equation - [in] (the first three coefficients are assumed to be a unit vector. If not, adjust your d accordingly.) Returns: True if the shortest distance from the plane to the bounding box is greater than d, and false if the shortest distance is less than or equal to d.

◆ IsNan()

bool ON_BoundingBox::IsNan ( ) const

some coordinate is a NAN

◆ IsNotEmpty()

bool ON_BoundingBox::IsNotEmpty ( ) const

(m_min.x <= m_max.x && m_min.y <= m_max.y && m_min.z <= m_max.z) && IsSet()

◆ IsPoint()

bool ON_BoundingBox::IsPoint ( ) const

(m_min.x == m_max.x && m_min.y == m_max.y && m_min.z == m_max.z) && IsSet()

◆ IsPointIn()

bool ON_BoundingBox::IsPointIn ( const ON_3dPoint test_point,
int  bStrictlyIn = false 
) const
Parameters
test_pointpoint to test
bStrictlyIntrue to test for strict ( min < point < max ) false to test for (min <= point <= max)

◆ IsSet()

bool ON_BoundingBox::IsSet ( ) const

every coordinate is a finite, valid double, not ON_UNSET_VALUE and not ON_UNSET_POSITIVE_VALUE

◆ IsUnset()

bool ON_BoundingBox::IsUnset ( ) const

some coordinate is ON_UNSET_VALUE or ON_UNSET_POSITIVE_VALUE

◆ IsUnsetOrNan()

bool ON_BoundingBox::IsUnsetOrNan ( ) const

◆ IsValid()

bool ON_BoundingBox::IsValid ( ) const

OBSOLETE IsValid() = IsNotEmpty()

empty boxes are not valid

◆ IsVisible()

int ON_BoundingBox::IsVisible ( const ON_Xform bbox2c) const

OBSOLETE temporary - use ON_ClippingRegion - this function will be removed soon.

◆ Max()

ON_3dPoint ON_BoundingBox::Max ( ) const

◆ MaximumDistanceTo() [1/5]

double ON_BoundingBox::MaximumDistanceTo ( const ON_3dPoint P) const

Description: Quickly find an upper bound on the distance between the point and this bounding box. Parameters: P - [in] Returns: A distance that is greater than or equal to the longest distance from the point P to this bounding box. Put another way, if Q is any point in this bounding box, then P.DistanceTo(Q) <= MaximumDistanceTo(bbox).

◆ MaximumDistanceTo() [2/5]

double ON_BoundingBox::MaximumDistanceTo ( const ON_BoundingBox other) const

Description: Quickly find an upper bound on the distance between this and the other bounding box. Parameters: other - [in] Returns: A distance that is greater than or equal to the longest distance between the bounding boxes. Put another way, if Q is any point in this bounding box and P is any point in the other bounding box, then P.DistanceTo(Q) <= MaximumDistanceTo(bbox).

◆ MaximumDistanceTo() [3/5]

double ON_BoundingBox::MaximumDistanceTo ( const ON_Line line) const

Description: Quickly find an upper bound on the distance between the line segment and this bounding box. Parameters: line - [in] Returns: A distance that is greater than or equal to the longest distance from the line to this bounding box. Put another way, if Q is any point on the line and P is any point in this bounding box, then P.DistanceTo(Q) <= MaximumDistanceTo(bbox).

◆ MaximumDistanceTo() [4/5]

double ON_BoundingBox::MaximumDistanceTo ( const ON_Plane plane) const

Description: Quickly find a tight upper bound on the distance between the plane and this bounding box. Parameters: plane - [in] Returns: A distance that is equal to the longest distance from the plane to this bounding box. Put another way, if Q is any point on the plane and P is any point in this bounding box, then P.DistanceTo(Q) <= MaximumDistanceTo(bbox) and there is at least one point on the bounding box where the distance is equal to the returned value. See Also: ON_PlaneEquation::MaximumValueAt

◆ MaximumDistanceTo() [5/5]

double ON_BoundingBox::MaximumDistanceTo ( const ON_PlaneEquation plane_equation) const

◆ Min()

ON_3dPoint ON_BoundingBox::Min ( ) const

◆ MinimumDistanceTo() [1/5]

double ON_BoundingBox::MinimumDistanceTo ( const ON_3dPoint P) const

Description: Quickly find a lower bound on the distance between the point and this bounding box. Parameters: P - [in] Returns: A distance that is less than or equal to the shortest distance from the line to this bounding box. Put another way, if Q is any point in this bounding box, then P.DistanceTo(Q) >= MinimumDistanceTo(bbox).

◆ MinimumDistanceTo() [2/5]

double ON_BoundingBox::MinimumDistanceTo ( const ON_BoundingBox other) const

Description: Quickly find a lower bound on the distance between this and the other bounding box. Parameters: other - [in] Returns: A distance that is less than or equal to the shortest distance between the bounding boxes. Put another way, if Q is any point in this bounding box and P is any point in the other bounding box, then P.DistanceTo(Q) >= MinimumDistanceTo(bbox).

◆ MinimumDistanceTo() [3/5]

double ON_BoundingBox::MinimumDistanceTo ( const ON_Line line) const

Description: Quickly find a lower bound on the distance between the line segment and this bounding box. Parameters: line - [in] Returns: A distance that is less than or equal to the shortest distance from the line to this bounding box. Put another way, if Q is any point on line and P is any point in this bounding box, then P.DistanceTo(Q) >= MinimumDistanceTo(bbox).

◆ MinimumDistanceTo() [4/5]

double ON_BoundingBox::MinimumDistanceTo ( const ON_Plane plane) const

Description: Quickly find a tight lower bound on the distance between the plane and this bounding box. Parameters: plane - [in] Returns: The minimum distance between a point on the plane and a point on the bounding box. See Also: ON_PlaneEquation::MinimumValueAt ON_PlaneEquation::MaximumValueAt

◆ MinimumDistanceTo() [5/5]

double ON_BoundingBox::MinimumDistanceTo ( const ON_PlaneEquation plane_equation) const

◆ operator=()

ON_BoundingBox& ON_BoundingBox::operator= ( const ON_BoundingBox )
default

◆ operator[]() [1/2]

ON_3dPoint& ON_BoundingBox::operator[] ( int  )

operator[] returns min if index <= 0 and max if index >= 1

◆ operator[]() [2/2]

const ON_3dPoint& ON_BoundingBox::operator[] ( int  ) const

◆ Set() [1/12]

bool ON_BoundingBox::Set ( const ON_2dPoint point,
int  bGrowBox = false 
)

◆ Set() [2/12]

bool ON_BoundingBox::Set ( const ON_2fPoint point,
int  bGrowBox = false 
)

◆ Set() [3/12]

bool ON_BoundingBox::Set ( const ON_3dPoint point,
int  bGrowBox = false 
)

◆ Set() [4/12]

bool ON_BoundingBox::Set ( const ON_3fPoint point,
int  bGrowBox = false 
)

◆ Set() [5/12]

bool ON_BoundingBox::Set ( const ON_SimpleArray< ON_2dPoint > &  point_array,
int  bGrowBox = false 
)

◆ Set() [6/12]

bool ON_BoundingBox::Set ( const ON_SimpleArray< ON_2fPoint > &  point_array,
int  bGrowBox = false 
)

◆ Set() [7/12]

bool ON_BoundingBox::Set ( const ON_SimpleArray< ON_3dPoint > &  point_array,
int  bGrowBox = false 
)

◆ Set() [8/12]

bool ON_BoundingBox::Set ( const ON_SimpleArray< ON_3fPoint > &  point_array,
int  bGrowBox = false 
)

◆ Set() [9/12]

bool ON_BoundingBox::Set ( const ON_SimpleArray< ON_4dPoint > &  point_array,
int  bGrowBox = false 
)

◆ Set() [10/12]

bool ON_BoundingBox::Set ( const ON_SimpleArray< ON_4fPoint > &  point_array,
int  bGrowBox = false 
)

◆ Set() [11/12]

bool ON_BoundingBox::Set ( int  dim,
bool  is_rat,
int  count,
int  stride,
const double *  point_array,
int  bGrowBox = false 
)

All of these Set() functions set or expand a box to enclose the points in the arguments If bGrowBox is true, the existing box is expanded, otherwise it is only set to the current point list

◆ Set() [12/12]

bool ON_BoundingBox::Set ( int  dim,
bool  is_rat,
int  count,
int  stride,
const float *  point_array,
int  bGrowBox = false 
)

◆ Shrink()

bool ON_BoundingBox::Shrink ( ON_3dVector  delta)

Description: Shrinks the box by subtracting delta to m_max and adding it from m_min. This is not allowed to create an inverse bounding box. Returns: true if the result is Valid.

◆ SwapCoordinates()

bool ON_BoundingBox::SwapCoordinates ( int  ,
int   
)

◆ Tolerance()

double ON_BoundingBox::Tolerance ( ) const

rough guess at a tolerance to use for comparing objects in this bounding box

◆ Transform()

bool ON_BoundingBox::Transform ( const ON_Xform )

ON_BoundingBox::Transform() updates the bounding box to be the smallest axis aligned bounding box that contains the transform of the eight corner points of the input bounding box.

◆ Union() [1/2]

bool ON_BoundingBox::Union ( const ON_BoundingBox )

Union() returns true if union is not empty. Invalid boxes are treated as the empty set.

◆ Union() [2/2]

bool ON_BoundingBox::Union ( const ON_BoundingBox ,
const ON_BoundingBox  
)

◆ Volume()

double ON_BoundingBox::Volume ( ) const

Member Data Documentation

◆ EmptyBoundingBox

const ON_BoundingBox ON_BoundingBox::EmptyBoundingBox
static

((1.0,0.0,0.0),(-1.0,0.0,0.0))

◆ m_max

ON_3dPoint ON_BoundingBox::m_max

◆ m_min

ON_3dPoint ON_BoundingBox::m_min

◆ NanBoundingBox

const ON_BoundingBox ON_BoundingBox::NanBoundingBox
static

all coordinates are ON_DBL_QNAN

◆ UnsetBoundingBox

const ON_BoundingBox ON_BoundingBox::UnsetBoundingBox
static

all coordinates are ON_UNSET_VALUE