#include <opennurbs_bounding_box.h>
Public Member Functions | |
ON_BoundingBox () ON_NOEXCEPT | |
ON_BoundingBox (const ON_BoundingBox &)=default | |
ON_BoundingBox (const ON_3dPoint &, const ON_3dPoint &) | |
~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 |
void | Dump (class ON_TextLog &) const |
ON_3dPoint | FarPoint (const ON_3dPoint &) const |
Point on the box that is farthest from the test_point. More... | |
int | GetClosestPoint (const ON_Line &, ON_3dPoint &, double *, double *) const |
Get point in a bounding box that is closest to a line segment. More... | |
bool | GetClosestPoint (const ON_BoundingBox &, ON_3dPoint &, ON_3dPoint &) const |
bool | GetCorners (ON_3dPointArray &box_corners) const |
bool | GetCorners (ON_3dPoint box_corners[8]) 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 |
Test a box to see if it is contained in this box. More... | |
bool | Intersection (const ON_BoundingBox &other_bbox) |
Intersect this with other_bbox and save intersection in this. More... | |
bool | Intersection (const ON_BoundingBox &bbox_A, const ON_BoundingBox &bbox_B) |
Set "this" to the intersection of bbox_A and bbox_B. More... | |
bool | Intersection (const ON_Line &, double *=nullptr, double *=nullptr) const |
int | IsDegenerate (double tolerance=ON_UNSET_VALUE) const |
Test a bounding box to see if it is degenerate (flat) in one or more directions. More... | |
bool | IsDisjoint (const ON_BoundingBox &other_bbox) const |
Test to see if "this" and other_bbox are disjoint (do not intersect). More... | |
bool | IsEmpty () const |
bool | IsFartherThan (double d, const ON_3dPoint &P) const |
Quickly determine if the shortest distance from the point P to the bounding box is greater than d. More... | |
bool | IsFartherThan (double d, const ON_Line &line) const |
Quickly determine if the shortest distance from the line to the bounding box is greater than d. More... | |
bool | IsFartherThan (double d, const ON_Plane &plane) const |
Quickly determine if the shortest distance from the plane to the bounding box is greater than d. More... | |
bool | IsFartherThan (double d, const ON_PlaneEquation &plane_equation) const |
Quickly determine if the shortest distance from the plane to the bounding box is greater than d. More... | |
bool | IsFartherThan (double d, const ON_BoundingBox &other) const |
Quickly determine if the shortest distance this bounding box to another bounding box is greater than d. More... | |
bool | IsNan () const |
bool | IsNotEmpty () const |
bool | IsPoint () const |
bool | IsPointIn (const ON_3dPoint &test_point, int bStrictlyIn=false) const |
bool | IsSet () const |
bool | IsUnset () const |
bool | IsUnsetOrNan () const |
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 |
Quickly find an upper bound on the distance between the point and this bounding box. More... | |
double | MaximumDistanceTo (const ON_BoundingBox &other) const |
Quickly find an upper bound on the distance between this and the other bounding box. More... | |
double | MaximumDistanceTo (const ON_Line &line) const |
Quickly find an upper bound on the distance between the line segment and this bounding box. More... | |
double | MaximumDistanceTo (const ON_Plane &plane) const |
Quickly find a tight upper bound on the distance between the plane and this bounding box. More... | |
double | MaximumDistanceTo (const ON_PlaneEquation &plane_equation) const |
ON_3dPoint | Min () const |
double | MinimumDistanceTo (const ON_3dPoint &P) const |
Quickly find a lower bound on the distance between the point and this bounding box. More... | |
double | MinimumDistanceTo (const ON_BoundingBox &other) const |
Quickly find a lower bound on the distance between this and the other bounding box. More... | |
double | MinimumDistanceTo (const ON_Line &line) const |
Quickly find a lower bound on the distance between the line segment and this bounding box. More... | |
double | MinimumDistanceTo (const ON_Plane &plane) const |
Quickly find a tight lower bound on the distance between the plane and this bounding box. More... | |
double | MinimumDistanceTo (const ON_PlaneEquation &plane_equation) const |
ON_BoundingBox & | operator= (const ON_BoundingBox &)=default |
ON_3dPoint & | operator[] (int) |
operator[] returns min if index <= 0 and max if indes >= 1 More... | |
const ON_3dPoint & | operator[] (int) const |
bool | Set (int dim, bool is_rat, int count, int stride, const double *point_array, int bGrowBox=false) |
bool | Set (const ON_3dPoint &point, int bGrowBox=false) |
bool | Set (const ON_2dPoint &point, int bGrowBox=false) |
bool | Set (const ON_SimpleArray< ON_4dPoint > &point_array, int bGrowBox=false) |
bool | Set (const ON_SimpleArray< ON_3dPoint > &point_array, int bGrowBox=false) |
bool | Set (const ON_SimpleArray< ON_2dPoint > &point_array, int bGrowBox=false) |
bool | Set (int dim, bool is_rat, int count, int stride, const float *point_array, int bGrowBox=false) |
bool | Set (const ON_3fPoint &point, int bGrowBox=false) |
bool | Set (const ON_2fPoint &point, int bGrowBox=false) |
bool | Set (const ON_SimpleArray< ON_4fPoint > &point_array, int bGrowBox=false) |
bool | Set (const ON_SimpleArray< ON_3fPoint > &point_array, int bGrowBox=false) |
bool | Set (const ON_SimpleArray< ON_2fPoint > &point_array, int bGrowBox=false) |
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 |
static const ON_BoundingBox | NanBoundingBox |
static const ON_BoundingBox | UnsetBoundingBox |
ON_BoundingBox::ON_BoundingBox | ( | ) |
|
default |
|
default |
|
explicit |
double ON_BoundingBox::Area | ( | ) | const |
ON_3dPoint ON_BoundingBox::Center | ( | ) | const |
ON_3dPoint ON_BoundingBox::ClosestPoint | ( | const ON_3dPoint & | test_point | ) | const |
ON_3dPoint ON_BoundingBox::Corner | ( | int | , |
int | , | ||
int | |||
) | const |
void ON_BoundingBox::Destroy | ( | ) |
OBSOLETE.
ON_3dVector ON_BoundingBox::Diagonal | ( | ) | const |
void ON_BoundingBox::Dump | ( | class ON_TextLog & | ) | const |
ON_3dPoint ON_BoundingBox::FarPoint | ( | const ON_3dPoint & | ) | const |
Point on the box that is farthest from the test_point.
int ON_BoundingBox::GetClosestPoint | ( | const ON_Line & | , |
ON_3dPoint & | , | ||
double * | , | ||
double * | |||
) | const |
Get point in a bounding box that is closest to a line segment.
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. |
The box is treated as a solid box. If the intersection of the line segment, then 3 is returned.
bool ON_BoundingBox::GetClosestPoint | ( | const ON_BoundingBox & | , |
ON_3dPoint & | , | ||
ON_3dPoint & | |||
) | const |
bool ON_BoundingBox::GetCorners | ( | ON_3dPointArray & | box_corners | ) | const |
bool ON_BoundingBox::GetCorners | ( | ON_3dPoint | box_corners[8] | ) | const |
bool ON_BoundingBox::GetEdges | ( | ON_Line | edges[12] | ) | const |
TODODOC: edges[] - out TODODOC: 12 edge lines. If the bounding box has no height, width or depth, TODODOC: then the corresponding edges will have the same "from" and "to" TODODOC: points.
bool ON_BoundingBox::GetFarPoint | ( | const ON_BoundingBox & | , |
ON_3dPoint & | , | ||
ON_3dPoint & | |||
) | const |
Get points on bounding boxes that are farthest from each other.
bool ON_BoundingBox::Includes | ( | const ON_BoundingBox & | other, |
bool | bProperSubSet = false |
||
) | const |
Test a box to see if it is contained in this box.
other | [in] box to test |
bProperSubSet | [in] if true, then the test is for a proper inclusion. |
bool ON_BoundingBox::Intersection | ( | const ON_BoundingBox & | other_bbox | ) |
Intersect this with other_bbox and save intersection in this.
other_bbox | [in] |
If "this" or other_bbox is invalid, they are treated as the empty set, and false is returned.
bool ON_BoundingBox::Intersection | ( | const ON_BoundingBox & | bbox_A, |
const ON_BoundingBox & | bbox_B | ||
) |
Set "this" to the intersection of bbox_A and bbox_B.
bbox_A | [in] |
bbox_B | [in] |
If bbox_A or bbox_B is invalid, they are treated as the empty set, and false is returned.
bool ON_BoundingBox::Intersection | ( | const ON_Line & | , |
double * | = nullptr , |
||
double * | = nullptr |
||
) | const |
int ON_BoundingBox::IsDegenerate | ( | double | tolerance = ON_UNSET_VALUE | ) | const |
Test a bounding box to see if it is degenerate (flat) in one or more directions.
tolerance | [in] Distances <= tolerance will be considered to be zero. If tolerance is negative (default), then a scale invarient tolerance is used. |
bool ON_BoundingBox::IsDisjoint | ( | const ON_BoundingBox & | other_bbox | ) | const |
Test to see if "this" and other_bbox are disjoint (do not intersect).
other_bbox | [in] |
If "this" or other_bbox is invalid, then true is returned.
bool ON_BoundingBox::IsEmpty | ( | ) | const |
bool ON_BoundingBox::IsFartherThan | ( | double | d, |
const ON_3dPoint & | P | ||
) | const |
Quickly determine if the shortest distance from the point P to the bounding box is greater than d.
d | [in] distance (> 0.0) |
P | [in] |
bool ON_BoundingBox::IsFartherThan | ( | double | d, |
const ON_Line & | line | ||
) | const |
Quickly determine if the shortest distance from the line to the bounding box is greater than d.
d | [in] distance (> 0.0) |
line | [in] |
bool ON_BoundingBox::IsFartherThan | ( | double | d, |
const ON_Plane & | plane | ||
) | const |
Quickly determine if the shortest distance from the plane to the bounding box is greater than d.
d | [in] distance (> 0.0) |
plane | [in] |
bool ON_BoundingBox::IsFartherThan | ( | double | d, |
const ON_PlaneEquation & | plane_equation | ||
) | const |
Quickly determine if the shortest distance from the plane to the bounding box is greater than d.
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.) |
bool ON_BoundingBox::IsFartherThan | ( | double | d, |
const ON_BoundingBox & | other | ||
) | const |
Quickly determine if the shortest distance this bounding box to another bounding box is greater than d.
d | [in] distance (> 0.0) |
other | [in] other bounding box |
bool ON_BoundingBox::IsNan | ( | ) | const |
bool ON_BoundingBox::IsNotEmpty | ( | ) | const |
bool ON_BoundingBox::IsPoint | ( | ) | const |
bool ON_BoundingBox::IsPointIn | ( | const ON_3dPoint & | test_point, |
int | bStrictlyIn = false |
||
) | const |
bool ON_BoundingBox::IsSet | ( | ) | const |
bool ON_BoundingBox::IsUnset | ( | ) | const |
bool ON_BoundingBox::IsUnsetOrNan | ( | ) | const |
bool ON_BoundingBox::IsValid | ( | ) | const |
OBSOLETE IsValid() = IsNotEmpty()
int ON_BoundingBox::IsVisible | ( | const ON_Xform & | bbox2c | ) | const |
ON_3dPoint ON_BoundingBox::Max | ( | ) | const |
double ON_BoundingBox::MaximumDistanceTo | ( | const ON_3dPoint & | P | ) | const |
Quickly find an upper bound on the distance between the point and this bounding box.
P | [in] |
double ON_BoundingBox::MaximumDistanceTo | ( | const ON_BoundingBox & | other | ) | const |
Quickly find an upper bound on the distance between this and the other bounding box.
other | [in] |
double ON_BoundingBox::MaximumDistanceTo | ( | const ON_Line & | line | ) | const |
Quickly find an upper bound on the distance between the line segment and this bounding box.
line | [in] |
double ON_BoundingBox::MaximumDistanceTo | ( | const ON_Plane & | plane | ) | const |
Quickly find a tight upper bound on the distance between the plane and this bounding box.
plane | [in] |
double ON_BoundingBox::MaximumDistanceTo | ( | const ON_PlaneEquation & | plane_equation | ) | const |
ON_3dPoint ON_BoundingBox::Min | ( | ) | const |
double ON_BoundingBox::MinimumDistanceTo | ( | const ON_3dPoint & | P | ) | const |
Quickly find a lower bound on the distance between the point and this bounding box.
P | [in] |
double ON_BoundingBox::MinimumDistanceTo | ( | const ON_BoundingBox & | other | ) | const |
Quickly find a lower bound on the distance between this and the other bounding box.
other | [in] |
double ON_BoundingBox::MinimumDistanceTo | ( | const ON_Line & | line | ) | const |
Quickly find a lower bound on the distance between the line segment and this bounding box.
line | [in] |
double ON_BoundingBox::MinimumDistanceTo | ( | const ON_Plane & | plane | ) | const |
Quickly find a tight lower bound on the distance between the plane and this bounding box.
plane | [in] |
double ON_BoundingBox::MinimumDistanceTo | ( | const ON_PlaneEquation & | plane_equation | ) | const |
|
default |
ON_3dPoint& ON_BoundingBox::operator[] | ( | int | ) |
operator[] returns min if index <= 0 and max if indes >= 1
const ON_3dPoint& ON_BoundingBox::operator[] | ( | int | ) | const |
bool ON_BoundingBox::Set | ( | int | dim, |
bool | is_rat, | ||
int | count, | ||
int | stride, | ||
const double * | point_array, | ||
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_3dPoint & | point, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_2dPoint & | point, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_SimpleArray< ON_4dPoint > & | point_array, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_SimpleArray< ON_3dPoint > & | point_array, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_SimpleArray< ON_2dPoint > & | point_array, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | int | dim, |
bool | is_rat, | ||
int | count, | ||
int | stride, | ||
const float * | point_array, | ||
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_3fPoint & | point, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_2fPoint & | point, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_SimpleArray< ON_4fPoint > & | point_array, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_SimpleArray< ON_3fPoint > & | point_array, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::Set | ( | const ON_SimpleArray< ON_2fPoint > & | point_array, |
int | bGrowBox = false |
||
) |
bool ON_BoundingBox::SwapCoordinates | ( | int | , |
int | |||
) |
double ON_BoundingBox::Tolerance | ( | ) | const |
bool ON_BoundingBox::Transform | ( | const ON_Xform & | ) |
bool ON_BoundingBox::Union | ( | const ON_BoundingBox & | ) |
bool ON_BoundingBox::Union | ( | const ON_BoundingBox & | , |
const ON_BoundingBox & | |||
) |
double ON_BoundingBox::Volume | ( | ) | const |
|
static |
ON_3dPoint ON_BoundingBox::m_max |
ON_3dPoint ON_BoundingBox::m_min |
|
static |
|
static |