class Geo::GeoBoundingBox
This class represents an axis aligned bounding box.
Variables
Name | Description |
---|---|
Geo::v128 v[2] | A min and max position pair. |
Functions
Name | Description |
---|---|
AddDebugLines(Geo::GeoArray< DebugLine > &) | Appends to the contents of the given array with the lines making up the bounding box. |
CalculateSolidAngle(v128 const &) | calculates the solid angle of the box as visible from viewPos |
ClosestPointInBox(const Geo::v128 &) | Compute the closest point in the box to p. |
ContainsBox(const Geo::GeoBoundingBox &) | Is a box contained by the box? |
ContainsPoint(const Geo::v128 &) | Is a point in the box? |
ContainsPoint2D(const Geo::v128 &) | Is a point in the box? Only tests xy. |
EnclosePoint(const v128 &) | Enlarge this bounding box to include the given point. |
ExpandBy(const v128 &) | Expands this bounding box by the given amount in each of the three axes (in both directions). |
GeoBoundingBox() | Constructor - makes an empty bounding box. |
GeoBoundingBox(float, float, float, float, float, float) | Create a bounding box defined by two extreme points. |
GeoBoundingBox(const GeoBoundingBox &) | Copy Constructor. |
GetCenter() | Return the center of this bounding box. |
GetCorners(v128 *) | Return the 8 corner points. |
GetDebugLines(Geo::GeoArray< DebugLine > &) | Replaces the contents of the given array with the lines making up the bounding box. |
GetDistanceFrom(const GeoBoundingBox &) | Distance between two bounding boxes (0 if they intersect) |
GetLargestFace() | Return the largest face of this bounding box. |
GetLongestSide() | Return the longest side of this bounding box. |
GetLongestSideIdx() | Returns the index of the longest axis. |
GetMax() | Return the maxumum in each axis of this bounding box. |
GetMin() | Return the minimum in each axis of this bounding box. |
GetShortestSide() | Return the shortest side of this bounding box. |
GetSize() | Return the size of this bounding box in each axis. |
GetSurfaceArea() | Return the surface area of this bounding box. |
GetVolume() | Return the volume of this bounding box. |
IntersectsBoundingBox(const GeoBoundingBox &) | Returns true if the bounding boxes mutually olaps. |
IntersectsLightCone(const Geo::v128 &, const Geo::v128 &, float, float) | Returns true if the bounding box intersects the light cone. |
IntersectsRay(const Geo::v128 &, const Geo::v128 &, float &) | Returns true if the bounding box intersects the ray. If intersects then tHit return the distance to the hit. |
IntersectsSphere(Geo::v128, float) | Returns true if the bounding box overlaps the sphere. |
IntersectsSphere(const GeoBoundingSphere &) | Returns true if the bounding box overlaps the sphere. |
IsEmpty() | Returns true if the bbox is empty (ie uninitialised) |
operator[](Geo::u32) | Indexed access to the two extreme points that define this bounding box (index must be 0 or 1). |
operator+(const GeoBoundingBox &) | Compute and return the union of this bounding with another. |
operator+=(const v128 &) | Enlarge this bounding box to include the given point. |
operator+=(const GeoBoundingBox &) | Compute the inplace union of this bounding box and another. |
SetEmpty() | Resets the box to it's default empty state. |
Transform(const Geo::Matrix &) | Returns a new transformed bounding box. |
bool Geo::GeoBoundingBox::AddDebugLines
public: bool AddDebugLines
(
Geo::GeoArray< DebugLine > & lines
) const
Appends to the contents of the given array with the lines making up the bounding box.
float Geo::GeoBoundingBox::CalculateSolidAngle
public: float CalculateSolidAngle
(
v128 const & viewPos
) const
calculates the solid angle of the box as visible from viewPos
Geo::v128 Geo::GeoBoundingBox::ClosestPointInBox
public: Geo::v128 ClosestPointInBox
(
const Geo::v128 & p
) const
Compute the closest point in the box to p.
bool Geo::GeoBoundingBox::ContainsBox
public: bool ContainsBox
(
const Geo::GeoBoundingBox & rhs
) const
Is a box contained by the box?
bool Geo::GeoBoundingBox::ContainsPoint
public: bool ContainsPoint
(
const Geo::v128 & p
) const
Is a point in the box?
bool Geo::GeoBoundingBox::ContainsPoint2D
public: bool ContainsPoint2D
(
const Geo::v128 & p
) const
Is a point in the box? Only tests xy.
void Geo::GeoBoundingBox::EnclosePoint
public: void EnclosePoint
(
const v128 & point
)
Enlarge this bounding box to include the given point.
void Geo::GeoBoundingBox::ExpandBy
public: void ExpandBy
(
const v128 & expansion
)
Expands this bounding box by the given amount in each of the three axes (in both directions).
Geo::GeoBoundingBox::GeoBoundingBox
public: GeoBoundingBox()
Constructor - makes an empty bounding box.
Geo::GeoBoundingBox::GeoBoundingBox
public: GeoBoundingBox
(
float x1,
float y1,
float z1,
float x2,
float y2,
float z2
)
Create a bounding box defined by two extreme points.
Geo::GeoBoundingBox::GeoBoundingBox
public: GeoBoundingBox
(
const GeoBoundingBox & from
)
Copy Constructor.
v128 Geo::GeoBoundingBox::GetCenter
public: v128 GetCenter() const
Return the center of this bounding box.
void Geo::GeoBoundingBox::GetCorners
public: void GetCorners
(
v128 * corners
) const
Return the 8 corner points.
bool Geo::GeoBoundingBox::GetDebugLines
public: bool GetDebugLines
(
Geo::GeoArray< DebugLine > & lines
) const
Replaces the contents of the given array with the lines making up the bounding box.
float Geo::GeoBoundingBox::GetDistanceFrom
public: float GetDistanceFrom
(
const GeoBoundingBox & rhs
) const
Distance between two bounding boxes (0 if they intersect)
float Geo::GeoBoundingBox::GetLargestFace
public: float GetLargestFace() const
Return the largest face of this bounding box.
float Geo::GeoBoundingBox::GetLongestSide
public: float GetLongestSide() const
Return the longest side of this bounding box.
Geo::s32 Geo::GeoBoundingBox::GetLongestSideIdx
public: Geo::s32 GetLongestSideIdx() const
Returns the index of the longest axis.
v128 Geo::GeoBoundingBox::GetMax
public: v128 GetMax() const
Return the maxumum in each axis of this bounding box.
v128 Geo::GeoBoundingBox::GetMin
public: v128 GetMin() const
Return the minimum in each axis of this bounding box.
float Geo::GeoBoundingBox::GetShortestSide
public: float GetShortestSide() const
Return the shortest side of this bounding box.
v128 Geo::GeoBoundingBox::GetSize
public: v128 GetSize() const
Return the size of this bounding box in each axis.
float Geo::GeoBoundingBox::GetSurfaceArea
public: float GetSurfaceArea() const
Return the surface area of this bounding box.
float Geo::GeoBoundingBox::GetVolume
public: float GetVolume() const
Return the volume of this bounding box.
bool Geo::GeoBoundingBox::IntersectsBoundingBox
public: bool IntersectsBoundingBox
(
const GeoBoundingBox & rhs
) const
Returns true if the bounding boxes mutually olaps.
bool Geo::GeoBoundingBox::IntersectsLightCone
public: bool IntersectsLightCone
(
const Geo::v128 & lightPosition,
const Geo::v128 & lightDirection,
float coneAngle,
float cutOff
) const
Returns true if the bounding box intersects the light cone.
bool Geo::GeoBoundingBox::IntersectsRay
public: bool IntersectsRay
(
const Geo::v128 & rayPosition,
const Geo::v128 & rayDirection,
float & tHit
) const
Returns true if the bounding box intersects the ray. If intersects then tHit return the distance to the hit.
bool Geo::GeoBoundingBox::IntersectsSphere
public: bool IntersectsSphere
(
Geo::v128 centre,
float radius
) const
Returns true if the bounding box overlaps the sphere.
bool Geo::GeoBoundingBox::IntersectsSphere
public: bool IntersectsSphere
(
const GeoBoundingSphere & bSphere
) const
Returns true if the bounding box overlaps the sphere.
bool Geo::GeoBoundingBox::IsEmpty
public: bool IsEmpty() const
Returns true if the bbox is empty (ie uninitialised)
const v128 & Geo::GeoBoundingBox::operator[]
public: const v128 & operator[]
(
Geo::u32 index
) const
Indexed access to the two extreme points that define this bounding box (index must be 0 or 1).
GeoBoundingBox Geo::GeoBoundingBox::operator+
public: GeoBoundingBox operator+
(
const GeoBoundingBox & rhs
) const
Compute and return the union of this bounding with another.
GeoBoundingBox & Geo::GeoBoundingBox::operator+=
public: GeoBoundingBox & operator+=
(
const v128 & rhs
)
Enlarge this bounding box to include the given point.
GeoBoundingBox & Geo::GeoBoundingBox::operator+=
public: GeoBoundingBox & operator+=
(
const GeoBoundingBox & rhs
)
Compute the inplace union of this bounding box and another.
void Geo::GeoBoundingBox::SetEmpty
public: void SetEmpty()
Resets the box to it's default empty state.
GeoBoundingBox Geo::GeoBoundingBox::Transform
public: GeoBoundingBox Transform
(
const Geo::Matrix & transform
) const
Returns a new transformed bounding box.