#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 |