PxBounds3
Defined in include/foundation/PxBounds3.h
- 
class PxBounds3
- Class representing 3D range or axis aligned bounding box. - Stored as minimum and maximum extent corners. Alternate representation would be center and dimensions. May be empty or nonempty. For nonempty bounds, minimum <= maximum has to hold for all axes. Empty bounds have to be represented as minimum = PX_MAX_BOUNDS_EXTENTS and maximum = -PX_MAX_BOUNDS_EXTENTS for all axes. All other representations are invalid and the behavior is undefined. - Public Functions - 
inline PxBounds3()
- Default constructor, not performing any initialization for performance reason. - Remark - Use empty() function below to construct empty bounds. 
 - 
inline void setEmpty()
- Sets empty to true. 
 - 
inline void setMaximal()
- Sets the bounds to maximum size [-PX_MAX_BOUNDS_EXTENTS, PX_MAX_BOUNDS_EXTENTS]. 
 - 
inline void include(const PxVec3 &v)
- expands the volume to include v - Parameters
- v – Point to expand to. 
 
 - 
inline void include(const PxBounds3 &b)
- expands the volume to include b. - Parameters
- b – Bounds to perform union with. 
 
 - 
inline bool isEmpty() const
 - 
inline bool intersects(const PxBounds3 &b) const
- indicates whether the intersection of this and b is empty or not. - Parameters
- b – Bounds to test for intersection. 
 
 - 
inline bool intersects1D(const PxBounds3 &a, uint32_t axis) const
- computes the 1D-intersection between two AABBs, on a given axis. - Parameters
- a – the other AABB 
- axis – the axis (0, 1, 2) 
 
 
 - 
inline bool contains(const PxVec3 &v) const
- indicates if these bounds contain v. - Parameters
- v – Point to test against bounds. 
 
 - 
inline bool isInside(const PxBounds3 &box) const
- checks a box is inside another box. - Parameters
- box – the other AABB 
 
 - 
inline float getCenter(uint32_t axis) const
- get component of the box’s center along a given axis 
 - 
inline float getExtents(uint32_t axis) const
- get component of the box’s extents along a given axis 
 - 
inline PxVec3 getDimensions() const
- returns the dimensions (width/height/depth) of this axis aligned box. 
 - 
inline void scaleSafe(float scale)
- scales the AABB. - This version is safe to call for empty bounds. - Parameters
- scale – Factor to scale AABB by. 
 
 - 
inline void scaleFast(float scale)
- scales the AABB. - Calling this method for empty bounds leads to undefined behavior. Use scaleSafe() instead. - Parameters
- scale – Factor to scale AABB by. 
 
 - 
inline void fattenSafe(float distance)
- fattens the AABB in all 3 dimensions by the given distance. - This version is safe to call for empty bounds. 
 - 
inline void fattenFast(float distance)
- fattens the AABB in all 3 dimensions by the given distance. - Calling this method for empty bounds leads to undefined behavior. Use fattenSafe() instead. 
 - 
inline bool isFinite() const
- checks that the AABB values are not NaN 
 - 
inline bool isValid() const
- checks that the AABB values describe a valid configuration. 
 - Public Static Functions - 
static inline PxBounds3 boundsOfPoints(const PxVec3 &v0, const PxVec3 &v1)
- returns the AABB containing v0 and v1. - Parameters
- v0 – first point included in the AABB. 
- v1 – second point included in the AABB. 
 
 
 - 
static inline PxBounds3 centerExtents(const PxVec3 ¢er, const PxVec3 &extent)
- returns the AABB from center and extents vectors. - Parameters
- center – Center vector 
- extent – Extents vector 
 
 
 - 
static inline PxBounds3 basisExtent(const PxVec3 ¢er, const PxMat33 &basis, const PxVec3 &extent)
- Construct from center, extent, and (not necessarily orthogonal) basis. 
 - 
static inline PxBounds3 poseExtent(const PxTransform &pose, const PxVec3 &extent)
- Construct from pose and extent. 
 - 
static inline PxBounds3 transformSafe(const PxMat33 &matrix, const PxBounds3 &bounds)
- gets the transformed bounds of the passed AABB (resulting in a bigger AABB). - This version is safe to call for empty bounds. - Parameters
- matrix – [in] Transform to apply, can contain scaling as well 
- bounds – [in] The bounds to transform. 
 
 
 - 
static inline PxBounds3 transformFast(const PxMat33 &matrix, const PxBounds3 &bounds)
- gets the transformed bounds of the passed AABB (resulting in a bigger AABB). - Calling this method for empty bounds leads to undefined behavior. Use transformSafe() instead. - Parameters
- matrix – [in] Transform to apply, can contain scaling as well 
- bounds – [in] The bounds to transform. 
 
 
 - 
static inline PxBounds3 transformSafe(const PxTransform &transform, const PxBounds3 &bounds)
- gets the transformed bounds of the passed AABB (resulting in a bigger AABB). - This version is safe to call for empty bounds. - Parameters
- transform – [in] Transform to apply, can contain scaling as well 
- bounds – [in] The bounds to transform. 
 
 
 - 
static inline PxBounds3 transformFast(const PxTransform &transform, const PxBounds3 &bounds)
- gets the transformed bounds of the passed AABB (resulting in a bigger AABB). - Calling this method for empty bounds leads to undefined behavior. Use transformSafe() instead. - Parameters
- transform – [in] Transform to apply, can contain scaling as well 
- bounds – [in] The bounds to transform. 
 
 
 
- 
inline PxBounds3()