Foundation
Collaboration diagram for Foundation:

Namespaces

 physx
 

Classes

class  PxDelayLoadHook
 PxDelayLoadHook. More...
 
class  PxFileBuf
 Callback class for data serialization. More...
 
class  PxAssertHandler
 
class  PxFoundation
 Foundation SDK singleton class. More...
 
class  PxAllocatorCallback
 Abstract base class for an application defined memory allocator that can be used by the Nv library. More...
 
class  PxBitAndDataT< storageType, bitMask >
 
class  PxBounds3
 Class representing 3D range or axis aligned bounding box. More...
 
class  PxErrorCallback
 User defined interface class. Used by the library to emit debug information. More...
 
struct  PxErrorCode
 Error codes. More...
 
class  PxFlags< enumtype, storagetype >
 Container for bitfield flag variables associated with a specific enum type. More...
 
class  PxMat33
 3x3 matrix class More...
 
class  PxMat44
 4x4 matrix class More...
 
class  PxPlane
 Representation of a plane. More...
 
struct  PxPackValidation
 
class  PxQuat
 This is a quaternion class. For more information on quaternion mathematics consult a mathematics source on complex numbers. More...
 
class  PxStrideIterator< T >
 Iterator class for iterating over arrays of data that may be interleaved with other data. More...
 
class  PxTransform
 class representing a rigid euclidean transform as a quaternion and a vector More...
 
class  PxVec2
 2 Element vector class. More...
 
class  PxVec3
 3 Element vector class. More...
 
class  PxVec4
 4 Element vector class. More...
 

Macros

#define PX_ASSERT(exp)   ((void)0)
 
#define PX_ALWAYS_ASSERT_MESSAGE(exp)   ((void)0)
 
#define PX_ASSERT_WITH_MESSAGE(condition, message)   ((void)0)
 
#define PX_ALWAYS_ASSERT()   PX_ASSERT(0)
 
#define PX_FOUNDATION_API
 
#define PX_PHYSICS_VERSION_MAJOR   4
 
#define PX_PHYSICS_VERSION_MINOR   1
 
#define PX_PHYSICS_VERSION_BUGFIX   2
 
#define PX_PHYSICS_VERSION   ((PX_PHYSICS_VERSION_MAJOR<<24) + (PX_PHYSICS_VERSION_MINOR<<16) + (PX_PHYSICS_VERSION_BUGFIX<<8) + 0)
 
#define PX_MAX_BOUNDS_EXTENTS   (PX_MAX_REAL * 0.25f)
 
#define PX_STRINGIZE_HELPER(X)   #X
 
#define PX_STRINGIZE(X)   PX_STRINGIZE_HELPER(X)
 
#define PX_CONCAT_HELPER(X, Y)   X##Y
 
#define PX_CONCAT(X, Y)   PX_CONCAT_HELPER(X, Y)
 
#define PX_VC   0
 
#define PX_CLANG   0
 
#define PX_GCC   0
 
#define PX_XBOXONE   0
 
#define PX_XBOX_SERIES_X   0
 
#define PX_WIN64   0
 
#define PX_WIN32   0
 
#define PX_ANDROID   0
 
#define PX_LINUX   0
 
#define PX_IOS   0
 
#define PX_OSX   0
 
#define PX_PS4   0
 
#define PX_SWITCH   0
 
#define PX_UWP   0
 
#define PX_X64   0
 
#define PX_X86   0
 
#define PX_A64   0
 
#define PX_ARM   0
 
#define PX_PPC   0
 
#define PX_SSE2   0
 
#define PX_NEON   0
 
#define PX_VMX   0
 
#define PX_DEBUG   0
 
#define PX_CHECKED   0
 
#define PX_PROFILE   0
 
#define PX_DEBUG_CRT   0
 
#define PX_NVTX   0
 
#define PX_GCC_FAMILY   (PX_CLANG || PX_GCC)
 
#define PX_WINDOWS_FAMILY   (PX_WIN32 || PX_WIN64 || PX_UWP)
 
#define PX_MICROSOFT_FAMILY   (PX_XBOXONE || PX_WINDOWS_FAMILY || PX_XBOX_SERIES_X)
 
#define PX_LINUX_FAMILY   (PX_LINUX || PX_ANDROID)
 
#define PX_APPLE_FAMILY   (PX_IOS || PX_OSX)
 
#define PX_UNIX_FAMILY   (PX_LINUX_FAMILY || PX_APPLE_FAMILY)
 
#define PX_EMSCRIPTEN   0
 
#define PX_INTEL_FAMILY   (PX_X64 || PX_X86)
 
#define PX_ARM_FAMILY   (PX_ARM || PX_A64)
 
#define PX_P64_FAMILY   (PX_X64 || PX_A64)
 
#define PX_LIBCPP   0
 
#define PX_WINDOWS   (PX_WINDOWS_FAMILY && !PX_ARM_FAMILY)
 
#define PX_ENABLE_ASSERTS   0
 
#define PX_C_EXPORT
 
#define PX_UNIX_EXPORT
 
#define PX_DLL_EXPORT   PX_UNIX_EXPORT
 
#define PX_DLL_IMPORT
 
#define PX_CALL_CONV
 
#define PX_PUSH_PACK_DEFAULT
 
#define PX_POP_PACK
 
#define PX_INLINE   inline
 
#define PX_FORCE_INLINE   inline
 
#define PX_NOINLINE
 
#define PX_RESTRICT   __restrict
 
#define PX_NOALIAS
 
#define PX_ALIGN(alignment, decl)
 
#define PX_ALIGN_PREFIX(alignment)
 
#define PX_ALIGN_SUFFIX(alignment)
 
#define PX_DEPRECATED
 
#define PX_COMPILE_TIME_ASSERT(exp)   typedef char PxCompileTimeAssert_Dummy[(exp) ? 1 : -1]
 
#define PX_OFFSET_OF(X, Y)   offsetof(X, Y)
 
#define PX_OFFSETOF_BASE   0x100
 
#define PX_OFFSET_OF_RT(Class, Member)   (reinterpret_cast<size_t>(&reinterpret_cast<Class*>(PX_OFFSETOF_BASE)->Member) - size_t(PX_OFFSETOF_BASE))
 
#define PX_CUDA_CALLABLE
 
#define PX_DUMMY_SYMBOL
 
#define PX_WEAK_SYMBOL
 
#define PX_NOCOPY(Class)
 
#define PX_SUPPORT_GPU_PHYSX   ((PX_WINDOWS_FAMILY) || (PX_LINUX && PX_X64))
 
#define PX_SUPPORT_COMPUTE_PHYSX   0
 
#define PX_SUPPORT_EXTERN_TEMPLATE   ((!PX_ANDROID) && (PX_VC != 11))
 
#define PX_SHARED_ASSERT(exp)   ((void)0)
 
#define __STDC_FORMAT_MACROS
 
#define PX_PRIu64   PRIu64
 
#define PX_MAX_F32   3.4028234663852885981170418348452e+38F
 
#define PX_MAX_F64   DBL_MAX
 
#define PX_EPS_F32   FLT_EPSILON
 
#define PX_EPS_F64   DBL_EPSILON
 
#define PX_MAX_REAL   PX_MAX_F32
 
#define PX_EPS_REAL   PX_EPS_F32
 
#define PX_NORMALIZATION_EPSILON   float(1e-20f)
 
#define PX_MAX_I8   INT8_MAX
 
#define PX_MIN_I8   INT8_MIN
 
#define PX_MAX_U8   UINT8_MAX
 
#define PX_MIN_U8   UINT8_MIN
 
#define PX_MAX_I16   INT16_MAX
 
#define PX_MIN_I16   INT16_MIN
 
#define PX_MAX_U16   UINT16_MAX
 
#define PX_MIN_U16   UINT16_MIN
 
#define PX_MAX_I32   INT32_MAX
 
#define PX_MIN_I32   INT32_MIN
 
#define PX_MAX_U32   UINT32_MAX
 
#define PX_MIN_U32   UINT32_MIN
 
#define USE_VOLATILE_UNION
 

Typedefs

typedef uint32_t PxU32
 
typedef PxBitAndDataT< unsigned char, 0x80 > PxBitAndByte
 
typedef PxBitAndDataT< unsigned short, 0x8000 > PxBitAndWord
 
typedef PxBitAndDataT< unsigned int, 0x80000000 > PxBitAndDword
 

Enumerations

enum  PxEMPTY { PxEmpty }
 
enum  PxZERO { PxZero }
 
enum  PxIDENTITY { PxIdentity }
 

Functions

PX_C_EXPORT PX_PHYSX_CORE_API void PX_CALL_CONV PxSetPhysXDelayLoadHook (const physx::PxDelayLoadHook *hook)
 Sets delay load hook instance for PhysX dll. More...
 
PX_C_EXPORT PX_PHYSX_CORE_API void PX_CALL_CONV PxSetPhysXCookingDelayLoadHook (const physx::PxDelayLoadHook *hook)
 Sets delay load hook instance for PhysXCooking dll. More...
 
PX_C_EXPORT PX_PHYSX_COMMON_API void PX_CALL_CONV PxSetPhysXCommonDelayLoadHook (const physx::PxDelayLoadHook *hook)
 Sets delay load hook instance for PhysXCommon dll. More...
 
PX_FOUNDATION_API PX_DEPRECATED PxAssertHandlerPxGetAssertHandler ()
 
PX_FOUNDATION_API PX_DEPRECATED void PxSetAssertHandler (PxAssertHandler &handler)
 
PX_C_EXPORT PX_FOUNDATION_API physx::PxFoundation *PX_CALL_CONV PxCreateFoundation (physx::PxU32 version, physx::PxAllocatorCallback &allocator, physx::PxErrorCallback &errorCallback)
 Creates an instance of the foundation class. More...
 
PX_C_EXPORT PX_FOUNDATION_API physx::PxFoundation &PX_CALL_CONV PxGetFoundation ()
 Retrieves the Foundation SDK after it has been created. More...
 
PX_C_EXPORT PX_FOUNDATION_API physx::PxProfilerCallback *PX_CALL_CONV PxGetProfilerCallback ()
 Get the callback that will be used for all profiling. More...
 
PX_C_EXPORT PX_FOUNDATION_API void PX_CALL_CONV PxSetProfilerCallback (physx::PxProfilerCallback *profiler)
 Set the callback that will be used for all profiling. More...
 
template<class T >
PX_CUDA_CALLABLE PX_FORCE_INLINEPxMax (T a, T b)
 The return value is the greater of the two specified values. More...
 
template<>
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxMax (float a, float b)
 overload for float to use fsel on xbox More...
 
template<class T >
PX_CUDA_CALLABLE PX_FORCE_INLINEPxMin (T a, T b)
 The return value is the lesser of the two specified values. More...
 
template<>
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxMin (float a, float b)
 overload for float to use fsel on xbox More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAbs (float a)
 abs returns the absolute value of its argument. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxEquals (float a, float b, float eps)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAbs (double a)
 abs returns the absolute value of its argument. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE int32_t PxAbs (int32_t a)
 abs returns the absolute value of its argument. More...
 
template<class T >
PX_CUDA_CALLABLE PX_FORCE_INLINEPxClamp (T v, T lo, T hi)
 Clamps v to the range [hi,lo]. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxSqrt (float a)
 Square root. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxSqrt (double a)
 Square root. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxRecipSqrt (float a)
 reciprocal square root. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxRecipSqrt (double a)
 reciprocal square root. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxSin (float a)
 trigonometry – all angles are in radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxSin (double a)
 Sine of an angle ( Unit: Radians ) More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxCos (float a)
 Cosine of an angle (Unit: Radians) More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxCos (double a)
 Cosine of an angle (Unit: Radians) More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxTan (float a)
 Tangent of an angle. Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxTan (double a)
 Tangent of an angle. Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAsin (float f)
 Arcsine. Returns angle between -PI/2 and PI/2 in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAsin (double f)
 Arcsine. Returns angle between -PI/2 and PI/2 in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAcos (float f)
 Arccosine. Returns angle between 0 and PI in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAcos (double f)
 Arccosine. Returns angle between 0 and PI in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAtan (float a)
 ArcTangent. Returns angle between -PI/2 and PI/2 in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAtan (double a)
 ArcTangent. Returns angle between -PI/2 and PI/2 in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAtan2 (float x, float y)
 Arctangent of (x/y) with correct sign. Returns angle between -PI and PI in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAtan2 (double x, double y)
 Arctangent of (x/y) with correct sign. Returns angle between -PI and PI in radians Unit: Radians. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxIsFinite (float f)
 returns true if the passed number is a finite floating point number as opposed to INF, NAN, etc. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxIsFinite (double f)
 returns true if the passed number is a finite floating point number as opposed to INF, NAN, etc. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxFloor (float a)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxExp (float a)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxCeil (float a)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxSign (float a)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxPow (float x, float y)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxLog (float x)
 
PX_FORCE_INLINE void * PxMemZero (void *dest, PxU32 count)
 Sets the bytes of the provided buffer to zero. More...
 
PX_FORCE_INLINE void * PxMemSet (void *dest, PxI32 c, PxU32 count)
 Sets the bytes of the provided buffer to the specified value. More...
 
PX_FORCE_INLINE void * PxMemCopy (void *dest, const void *src, PxU32 count)
 Copies the bytes of one memory block to another. The memory blocks must not overlap. More...
 
PX_FORCE_INLINE void * PxMemMove (void *dest, const void *src, PxU32 count)
 Copies the bytes of one memory block to another. The memory blocks can overlap. More...
 
template<class T >
PX_CUDA_CALLABLE PX_INLINE void PX_UNUSED (T const &)
 
 PX_COMPILE_TIME_ASSERT (PX_OFFSET_OF(PxPackValidation, a)==8)
 
template<typename T >
PX_INLINE PxStrideIterator< T > operator+ (int i, PxStrideIterator< T > it)
 Addition operator. More...
 
template<typename T >
PX_INLINE PxStrideIterator< T > PxMakeIterator (T *ptr, PxU32 stride=sizeof(T))
 Stride iterator factory function which infers the iterator type. More...
 
template<typename T >
PX_INLINE PxStrideIterator< const T > PxMakeIterator (const T *ptr, PxU32 stride=sizeof(T))
 Stride iterator factory function which infers the iterator type. More...
 
template<class A , class B >
PX_FORCE_INLINEPxUnionCast (B b)
 
static PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec2 operator* (float f, const PxVec2 &v)
 
static PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 operator* (float f, const PxVec3 &v)
 
static PX_CUDA_CALLABLE PX_INLINE PxVec4 operator* (float f, const PxVec4 &v)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3::PxBounds3 (const PxVec3 &minimum, const PxVec3 &maximum)
 Construct from two bounding points. More...
 
static PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3 PxBounds3::empty ()
 Return empty bounds. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::isFinite () const
 
static PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3 PxBounds3::boundsOfPoints (const PxVec3 &v0, const PxVec3 &v1)
 returns the AABB containing v0 and v1. More...
 
static PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3 PxBounds3::centerExtents (const PxVec3 &center, const PxVec3 &extent)
 returns the AABB from center and extents vectors. More...
 
static PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::basisExtent (const PxVec3 &center, const PxMat33 &basis, const PxVec3 &extent)
 Construct from center, extent, and (not necessarily orthogonal) basis. More...
 
static PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::poseExtent (const PxTransform &pose, const PxVec3 &extent)
 Construct from pose and extent. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::setEmpty ()
 Sets empty to true. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::setMaximal ()
 Sets the bounds to maximum size [-PX_MAX_BOUNDS_EXTENTS, PX_MAX_BOUNDS_EXTENTS]. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::include (const PxVec3 &v)
 expands the volume to include v More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::include (const PxBounds3 &b)
 expands the volume to include b. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::isEmpty () const
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::intersects (const PxBounds3 &b) const
 indicates whether the intersection of this and b is empty or not. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::intersects1D (const PxBounds3 &a, uint32_t axis) const
 computes the 1D-intersection between two AABBs, on a given axis. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::contains (const PxVec3 &v) const
 indicates if these bounds contain v. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::isInside (const PxBounds3 &box) const
 checks a box is inside another box. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxBounds3::getCenter () const
 returns the center of this axis aligned box. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxBounds3::getCenter (uint32_t axis) const
 get component of the box's center along a given axis More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxBounds3::getExtents (uint32_t axis) const
 get component of the box's extents along a given axis More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxBounds3::getDimensions () const
 returns the dimensions (width/height/depth) of this axis aligned box. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxBounds3::getExtents () const
 returns the extents, which are half of the width/height/depth. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::scaleSafe (float scale)
 scales the AABB. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::scaleFast (float scale)
 scales the AABB. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::fattenSafe (float distance)
 
PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::fattenFast (float distance)
 
static PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformSafe (const PxMat33 &matrix, const PxBounds3 &bounds)
 gets the transformed bounds of the passed AABB (resulting in a bigger AABB). More...
 
static PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformFast (const PxMat33 &matrix, const PxBounds3 &bounds)
 gets the transformed bounds of the passed AABB (resulting in a bigger AABB). More...
 
static PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformSafe (const PxTransform &transform, const PxBounds3 &bounds)
 gets the transformed bounds of the passed AABB (resulting in a bigger AABB). More...
 
static PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformFast (const PxTransform &transform, const PxBounds3 &bounds)
 gets the transformed bounds of the passed AABB (resulting in a bigger AABB). More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::isValid () const
 
PX_CUDA_CALLABLE PX_INLINE PxQuat::PxQuat (const PxMat33 &m)
 Creates from orientation matrix. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxTransform::PxTransform (const PxMat44 &m)
 

Variables

static const float PxPi = float(3.141592653589793)
 
static const float PxHalfPi = float(1.57079632679489661923)
 
static const float PxTwoPi = float(6.28318530717958647692)
 
static const float PxInvPi = float(0.31830988618379067154)
 
static const float PxInvTwoPi = float(0.15915494309189533577)
 
static const float PxPiDivTwo = float(1.57079632679489661923)
 
static const float PxPiDivFour = float(0.78539816339744830962)
 

Detailed Description

Macro Definition Documentation

◆ __STDC_FORMAT_MACROS

#define __STDC_FORMAT_MACROS

◆ PX_A64

#define PX_A64   0

◆ PX_ALIGN

#define PX_ALIGN (   alignment,
  decl 
)

Alignment macros

PX_ALIGN_PREFIX and PX_ALIGN_SUFFIX can be used for type alignment instead of aligning individual variables as follows: PX_ALIGN_PREFIX(16) struct A { ... } PX_ALIGN_SUFFIX(16); This declaration style is parsed correctly by Visual Assist.

◆ PX_ALIGN_PREFIX

#define PX_ALIGN_PREFIX (   alignment)

◆ PX_ALIGN_SUFFIX

#define PX_ALIGN_SUFFIX (   alignment)

◆ PX_ALWAYS_ASSERT

#define PX_ALWAYS_ASSERT ( )    PX_ASSERT(0)

◆ PX_ALWAYS_ASSERT_MESSAGE

#define PX_ALWAYS_ASSERT_MESSAGE (   exp)    ((void)0)

◆ PX_ANDROID

#define PX_ANDROID   0

◆ PX_APPLE_FAMILY

#define PX_APPLE_FAMILY   (PX_IOS || PX_OSX)

◆ PX_ARM

#define PX_ARM   0

◆ PX_ARM_FAMILY

#define PX_ARM_FAMILY   (PX_ARM || PX_A64)

◆ PX_ASSERT

◆ PX_ASSERT_WITH_MESSAGE

#define PX_ASSERT_WITH_MESSAGE (   condition,
  message 
)    ((void)0)

◆ PX_C_EXPORT

#define PX_C_EXPORT

DLL export macros

◆ PX_CALL_CONV

#define PX_CALL_CONV

Calling convention

◆ PX_CHECKED

#define PX_CHECKED   0

◆ PX_CLANG

#define PX_CLANG   0

◆ PX_COMPILE_TIME_ASSERT

#define PX_COMPILE_TIME_ASSERT (   exp)    typedef char PxCompileTimeAssert_Dummy[(exp) ? 1 : -1]

General defines

◆ PX_CONCAT

#define PX_CONCAT (   X,
 
)    PX_CONCAT_HELPER(X, Y)

◆ PX_CONCAT_HELPER

#define PX_CONCAT_HELPER (   X,
 
)    X##Y

◆ PX_CUDA_CALLABLE

#define PX_CUDA_CALLABLE

◆ PX_DEBUG

#define PX_DEBUG   0

◆ PX_DEBUG_CRT

#define PX_DEBUG_CRT   0

◆ PX_DEPRECATED

#define PX_DEPRECATED

Deprecated macro

  • To deprecate a function: Place PX_DEPRECATED at the start of the function header (leftmost word).
  • To deprecate a 'typedef', a 'struct' or a 'class': Place PX_DEPRECATED directly after the keywords ('typdef', 'struct', 'class').

Use these macro definitions to create warnings for deprecated functions #define PX_DEPRECATED __declspec(deprecated) // Microsoft #define PX_DEPRECATED __attribute__((deprecated())) // GCC

◆ PX_DLL_EXPORT

#define PX_DLL_EXPORT   PX_UNIX_EXPORT

◆ PX_DLL_IMPORT

#define PX_DLL_IMPORT

◆ PX_DUMMY_SYMBOL

#define PX_DUMMY_SYMBOL

◆ PX_EMSCRIPTEN

#define PX_EMSCRIPTEN   0

◆ PX_ENABLE_ASSERTS

#define PX_ENABLE_ASSERTS   0

Assert macro

◆ PX_EPS_F32

#define PX_EPS_F32   FLT_EPSILON

◆ PX_EPS_F64

#define PX_EPS_F64   DBL_EPSILON

◆ PX_EPS_REAL

#define PX_EPS_REAL   PX_EPS_F32

◆ PX_FORCE_INLINE

#define PX_FORCE_INLINE   inline

Force inline macro

◆ PX_FOUNDATION_API

#define PX_FOUNDATION_API

◆ PX_GCC

#define PX_GCC   0

◆ PX_GCC_FAMILY

#define PX_GCC_FAMILY   (PX_CLANG || PX_GCC)

family shortcuts

◆ PX_INLINE

#define PX_INLINE   inline

Inline macro

◆ PX_INTEL_FAMILY

#define PX_INTEL_FAMILY   (PX_X64 || PX_X86)

◆ PX_IOS

#define PX_IOS   0

◆ PX_LIBCPP

#define PX_LIBCPP   0

C++ standard library defines

◆ PX_LINUX

#define PX_LINUX   0

◆ PX_LINUX_FAMILY

#define PX_LINUX_FAMILY   (PX_LINUX || PX_ANDROID)

◆ PX_MAX_BOUNDS_EXTENTS

#define PX_MAX_BOUNDS_EXTENTS   (PX_MAX_REAL * 0.25f)

◆ PX_MAX_F32

#define PX_MAX_F32   3.4028234663852885981170418348452e+38F

◆ PX_MAX_F64

#define PX_MAX_F64   DBL_MAX

◆ PX_MAX_I16

#define PX_MAX_I16   INT16_MAX

◆ PX_MAX_I32

#define PX_MAX_I32   INT32_MAX

◆ PX_MAX_I8

#define PX_MAX_I8   INT8_MAX

◆ PX_MAX_REAL

#define PX_MAX_REAL   PX_MAX_F32

◆ PX_MAX_U16

#define PX_MAX_U16   UINT16_MAX

◆ PX_MAX_U32

#define PX_MAX_U32   UINT32_MAX

◆ PX_MAX_U8

#define PX_MAX_U8   UINT8_MAX

◆ PX_MICROSOFT_FAMILY

#define PX_MICROSOFT_FAMILY   (PX_XBOXONE || PX_WINDOWS_FAMILY || PX_XBOX_SERIES_X)

◆ PX_MIN_I16

#define PX_MIN_I16   INT16_MIN

◆ PX_MIN_I32

#define PX_MIN_I32   INT32_MIN

◆ PX_MIN_I8

#define PX_MIN_I8   INT8_MIN

◆ PX_MIN_U16

#define PX_MIN_U16   UINT16_MIN

◆ PX_MIN_U32

#define PX_MIN_U32   UINT32_MIN

◆ PX_MIN_U8

#define PX_MIN_U8   UINT8_MIN

◆ PX_NEON

#define PX_NEON   0

◆ PX_NOALIAS

#define PX_NOALIAS

Noalias macro

◆ PX_NOCOPY

#define PX_NOCOPY (   Class)
Value:
\
protected: \
Class(const Class&); \
Class& operator=(const Class&);

◆ PX_NOINLINE

#define PX_NOINLINE

Noinline macro

◆ PX_NORMALIZATION_EPSILON

#define PX_NORMALIZATION_EPSILON   float(1e-20f)

◆ PX_NVTX

#define PX_NVTX   0

◆ PX_OFFSET_OF

#define PX_OFFSET_OF (   X,
 
)    offsetof(X, Y)

◆ PX_OFFSET_OF_RT

#define PX_OFFSET_OF_RT (   Class,
  Member 
)    (reinterpret_cast<size_t>(&reinterpret_cast<Class*>(PX_OFFSETOF_BASE)->Member) - size_t(PX_OFFSETOF_BASE))

◆ PX_OFFSETOF_BASE

#define PX_OFFSETOF_BASE   0x100

◆ PX_OSX

#define PX_OSX   0

◆ PX_P64_FAMILY

#define PX_P64_FAMILY   (PX_X64 || PX_A64)

◆ PX_PHYSICS_VERSION

#define PX_PHYSICS_VERSION   ((PX_PHYSICS_VERSION_MAJOR<<24) + (PX_PHYSICS_VERSION_MINOR<<16) + (PX_PHYSICS_VERSION_BUGFIX<<8) + 0)

The constant PX_PHYSICS_VERSION is used when creating certain PhysX module objects. This is to ensure that the application is using the same header version as the library was built with.

◆ PX_PHYSICS_VERSION_BUGFIX

#define PX_PHYSICS_VERSION_BUGFIX   2

◆ PX_PHYSICS_VERSION_MAJOR

#define PX_PHYSICS_VERSION_MAJOR   4

◆ PX_PHYSICS_VERSION_MINOR

#define PX_PHYSICS_VERSION_MINOR   1

◆ PX_POP_PACK

#define PX_POP_PACK

◆ PX_PPC

#define PX_PPC   0

◆ PX_PRIu64

#define PX_PRIu64   PRIu64

◆ PX_PROFILE

#define PX_PROFILE   0

◆ PX_PS4

#define PX_PS4   0

◆ PX_PUSH_PACK_DEFAULT

#define PX_PUSH_PACK_DEFAULT

Pack macros - disabled on SPU because they are not supported

◆ PX_RESTRICT

#define PX_RESTRICT   __restrict

Restrict macro

◆ PX_SHARED_ASSERT

◆ PX_SSE2

#define PX_SSE2   0

◆ PX_STRINGIZE

#define PX_STRINGIZE (   X)    PX_STRINGIZE_HELPER(X)

◆ PX_STRINGIZE_HELPER

#define PX_STRINGIZE_HELPER (   X)    #X

◆ PX_SUPPORT_COMPUTE_PHYSX

#define PX_SUPPORT_COMPUTE_PHYSX   0

◆ PX_SUPPORT_EXTERN_TEMPLATE

#define PX_SUPPORT_EXTERN_TEMPLATE   ((!PX_ANDROID) && (PX_VC != 11))

◆ PX_SUPPORT_GPU_PHYSX

#define PX_SUPPORT_GPU_PHYSX   ((PX_WINDOWS_FAMILY) || (PX_LINUX && PX_X64))

◆ PX_SWITCH

#define PX_SWITCH   0

◆ PX_UNIX_EXPORT

#define PX_UNIX_EXPORT

◆ PX_UNIX_FAMILY

#define PX_UNIX_FAMILY   (PX_LINUX_FAMILY || PX_APPLE_FAMILY)

◆ PX_UWP

#define PX_UWP   0

◆ PX_VC

#define PX_VC   0

Compiler defines, see http://sourceforge.net/p/predef/wiki/Compilers/ Operating system defines, see http://sourceforge.net/p/predef/wiki/OperatingSystems/ Architecture defines, see http://sourceforge.net/p/predef/wiki/Architectures/ SIMD defines define anything not defined on this platform to 0

◆ PX_VMX

#define PX_VMX   0

◆ PX_WEAK_SYMBOL

#define PX_WEAK_SYMBOL

◆ PX_WIN32

#define PX_WIN32   0

◆ PX_WIN64

#define PX_WIN64   0

◆ PX_WINDOWS

#define PX_WINDOWS   (PX_WINDOWS_FAMILY && !PX_ARM_FAMILY)

◆ PX_WINDOWS_FAMILY

#define PX_WINDOWS_FAMILY   (PX_WIN32 || PX_WIN64 || PX_UWP)

◆ PX_X64

#define PX_X64   0

◆ PX_X86

#define PX_X86   0

◆ PX_XBOX_SERIES_X

#define PX_XBOX_SERIES_X   0

◆ PX_XBOXONE

#define PX_XBOXONE   0

◆ USE_VOLATILE_UNION

#define USE_VOLATILE_UNION

Referenced by PxUnionCast().

Typedef Documentation

◆ PxBitAndByte

typedef PxBitAndDataT<unsigned char, 0x80> PxBitAndByte

◆ PxBitAndDword

typedef PxBitAndDataT<unsigned int, 0x80000000> PxBitAndDword

◆ PxBitAndWord

typedef PxBitAndDataT<unsigned short, 0x8000> PxBitAndWord

◆ PxU32

typedef uint32_t PxU32

files to always include

Enumeration Type Documentation

◆ PxEMPTY

enum PxEMPTY

enum for empty constructor tag

Enumerator
PxEmpty 

◆ PxIDENTITY

enum PxIDENTITY

enum for identity constructor flag for quaternions, transforms, and matrices

Enumerator
PxIdentity 

◆ PxZERO

enum PxZERO

enum for zero constructor tag for vectors and matrices

Enumerator
PxZero 

Function Documentation

◆ basisExtent()

PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::basisExtent ( const PxVec3 center,
const PxMat33 basis,
const PxVec3 extent 
)
static

Construct from center, extent, and (not necessarily orthogonal) basis.

References PxMat33::column0, PxMat33::column1, PxMat33::column2, PxAbs(), PxBounds3::PxBounds3(), PxVec3::x, PxVec3::y, and PxVec3::z.

Referenced by PxBounds3::poseExtent(), and PxBounds3::transformFast().

◆ boundsOfPoints()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3 PxBounds3::boundsOfPoints ( const PxVec3 v0,
const PxVec3 v1 
)
static

returns the AABB containing v0 and v1.

Parameters
v0first point included in the AABB.
v1second point included in the AABB.

References PxVec3::maximum(), PxVec3::minimum(), and PxBounds3::PxBounds3().

◆ centerExtents()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3 PxBounds3::centerExtents ( const PxVec3 center,
const PxVec3 extent 
)
static

returns the AABB from center and extents vectors.

Parameters
centerCenter vector
extentExtents vector

References PxBounds3::PxBounds3().

Referenced by PxBounds3::scaleFast().

◆ contains()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::contains ( const PxVec3 v) const

indicates if these bounds contain v.

Parameters
vPoint to test against bounds.

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, PX_SHARED_ASSERT, PxVec3::x, PxVec3::y, and PxVec3::z.

◆ empty()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3 PxBounds3::empty ( )
static

Return empty bounds.

References PX_MAX_BOUNDS_EXTENTS, and PxBounds3::PxBounds3().

◆ fattenFast()

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::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.

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, PX_SHARED_ASSERT, PxVec3::x, PxVec3::y, and PxVec3::z.

Referenced by PxBounds3::fattenSafe().

◆ fattenSafe()

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::fattenSafe ( float  distance)

fattens the AABB in all 3 dimensions by the given distance.

This version is safe to call for empty bounds.

References PxBounds3::fattenFast(), PxBounds3::isEmpty(), PxBounds3::isValid(), and PX_SHARED_ASSERT.

◆ getCenter() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxBounds3::getCenter ( ) const

returns the center of this axis aligned box.

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, and PX_SHARED_ASSERT.

Referenced by PxBounds3::scaleFast(), and PxBounds3::transformFast().

◆ getCenter() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxBounds3::getCenter ( uint32_t  axis) const

get component of the box's center along a given axis

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, and PX_SHARED_ASSERT.

◆ getDimensions()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxBounds3::getDimensions ( ) const

returns the dimensions (width/height/depth) of this axis aligned box.

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, and PX_SHARED_ASSERT.

Referenced by PxBounds3::getExtents().

◆ getExtents() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxBounds3::getExtents ( uint32_t  axis) const

get component of the box's extents along a given axis

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, and PX_SHARED_ASSERT.

Referenced by PxBounds3::transformFast().

◆ getExtents() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxBounds3::getExtents ( ) const

returns the extents, which are half of the width/height/depth.

References PxBounds3::getDimensions(), PxBounds3::isValid(), and PX_SHARED_ASSERT.

Referenced by PxBounds3::scaleFast().

◆ include() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::include ( const PxVec3 v)

expands the volume to include v

Parameters
vPoint to expand to.

References PxBounds3::isValid(), PxBounds3::maximum, PxVec3::maximum(), PxBounds3::minimum, PxVec3::minimum(), and PX_SHARED_ASSERT.

◆ include() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::include ( const PxBounds3 b)

expands the volume to include b.

Parameters
bBounds to perform union with.

References PxBounds3::isValid(), PxBounds3::maximum, PxVec3::maximum(), PxBounds3::minimum, PxVec3::minimum(), and PX_SHARED_ASSERT.

◆ intersects()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::intersects ( const PxBounds3 b) const

indicates whether the intersection of this and b is empty or not.

Parameters
bBounds to test for intersection.

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, PX_SHARED_ASSERT, PxVec3::x, PxVec3::y, and PxVec3::z.

◆ intersects1D()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::intersects1D ( const PxBounds3 a,
uint32_t  axis 
) const

computes the 1D-intersection between two AABBs, on a given axis.

Parameters
athe other AABB
axisthe axis (0, 1, 2)

References PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, and PX_SHARED_ASSERT.

◆ isEmpty()

◆ isFinite()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::isFinite ( ) const

checks that the AABB values are not NaN

References PxVec3::isFinite(), PxBounds3::maximum, and PxBounds3::minimum.

Referenced by PxBounds3::isValid().

◆ isInside()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxBounds3::isInside ( const PxBounds3 box) const

checks a box is inside another box.

Parameters
boxthe other AABB

References box, PxBounds3::isValid(), PxBounds3::maximum, PxBounds3::minimum, PX_SHARED_ASSERT, PxVec3::x, PxVec3::y, and PxVec3::z.

◆ isValid()

◆ operator*() [1/3]

static PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec2 operator* ( float  f,
const PxVec2 v 
)
static

References PxVec2::x, and PxVec2::y.

◆ operator*() [2/3]

static PX_CUDA_CALLABLE PX_INLINE PxVec4 operator* ( float  f,
const PxVec4 v 
)
static

References PxVec4::w, PxVec4::x, PxVec4::y, and PxVec4::z.

◆ operator*() [3/3]

static PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 operator* ( float  f,
const PxVec3 v 
)
static

References PxVec3::x, PxVec3::y, and PxVec3::z.

◆ operator+()

template<typename T >
PX_INLINE PxStrideIterator<T> operator+ ( int  i,
PxStrideIterator< T >  it 
)

Addition operator.

◆ poseExtent()

PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::poseExtent ( const PxTransform pose,
const PxVec3 extent 
)
static

Construct from pose and extent.

References PxBounds3::basisExtent(), PxTransform::p, and PxTransform::q.

◆ PX_COMPILE_TIME_ASSERT()

PX_COMPILE_TIME_ASSERT ( PX_OFFSET_OF(PxPackValidation, a)  = =8)

◆ PX_UNUSED()

◆ PxAbs() [1/3]

◆ PxAbs() [2/3]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAbs ( double  a)

abs returns the absolute value of its argument.

◆ PxAbs() [3/3]

PX_CUDA_CALLABLE PX_FORCE_INLINE int32_t PxAbs ( int32_t  a)

abs returns the absolute value of its argument.

References abs().

◆ PxAcos() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAcos ( float  f)

Arccosine. Returns angle between 0 and PI in radians Unit: Radians.

References PxClamp().

Referenced by PxQuat::getAngle().

◆ PxAcos() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAcos ( double  f)

Arccosine. Returns angle between 0 and PI in radians Unit: Radians.

References PxClamp().

◆ PxAsin() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAsin ( float  f)

Arcsine. Returns angle between -PI/2 and PI/2 in radians Unit: Radians.

References PxClamp().

◆ PxAsin() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAsin ( double  f)

Arcsine. Returns angle between -PI/2 and PI/2 in radians Unit: Radians.

References PxClamp().

◆ PxAtan() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAtan ( float  a)

ArcTangent. Returns angle between -PI/2 and PI/2 in radians Unit: Radians.

◆ PxAtan() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAtan ( double  a)

ArcTangent. Returns angle between -PI/2 and PI/2 in radians Unit: Radians.

◆ PxAtan2() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxAtan2 ( float  x,
float  y 
)

Arctangent of (x/y) with correct sign. Returns angle between -PI and PI in radians Unit: Radians.

Referenced by PxQuat::toRadiansAndUnitAxis().

◆ PxAtan2() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxAtan2 ( double  x,
double  y 
)

Arctangent of (x/y) with correct sign. Returns angle between -PI and PI in radians Unit: Radians.

◆ PxBounds3()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxBounds3::PxBounds3 ( const PxVec3 minimum,
const PxVec3 maximum 
)

Construct from two bounding points.

◆ PxCeil()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxCeil ( float  a)

◆ PxClamp()

template<class T >
PX_CUDA_CALLABLE PX_FORCE_INLINE T PxClamp ( v,
lo,
hi 
)

Clamps v to the range [hi,lo].

References PX_SHARED_ASSERT, PxMax(), and PxMin().

Referenced by PxAcos(), and PxAsin().

◆ PxCos() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxCos ( float  a)

Cosine of an angle (Unit: Radians)

References physx::intrinsics::cos().

Referenced by PxQuat::PxQuat().

◆ PxCos() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxCos ( double  a)

Cosine of an angle (Unit: Radians)

References cos().

◆ PxCreateFoundation()

PX_C_EXPORT PX_FOUNDATION_API physx::PxFoundation* PX_CALL_CONV PxCreateFoundation ( physx::PxU32  version,
physx::PxAllocatorCallback &  allocator,
physx::PxErrorCallback &  errorCallback 
)

Creates an instance of the foundation class.

The foundation class is needed to initialize higher level SDKs. There may be only one instance per process. Calling this method after an instance has been created already will result in an error message and NULL will be returned.

Parameters
versionVersion number we are expecting (should be PX_PHYSICS_VERSION)
allocatorUser supplied interface for allocating memory(see PxAllocatorCallback)
errorCallbackUser supplied interface for reporting errors and displaying messages(see PxErrorCallback)
Returns
Foundation instance on success, NULL if operation failed
See also
PxFoundation

◆ PxEquals()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxEquals ( float  a,
float  b,
float  eps 
)

References PxAbs().

◆ PxExp()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxExp ( float  a)

◆ PxFloor()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxFloor ( float  a)

◆ PxGetAssertHandler()

◆ PxGetFoundation()

PX_C_EXPORT PX_FOUNDATION_API physx::PxFoundation& PX_CALL_CONV PxGetFoundation ( )

Retrieves the Foundation SDK after it has been created.

Note
The behavior of this method is undefined if the foundation instance has not been created already.
See also
PxCreateFoundation()

Referenced by PxSerializerDefaultAdapter< T >::exportData().

◆ PxGetProfilerCallback()

Get the callback that will be used for all profiling.

◆ PxIsFinite() [1/2]

◆ PxIsFinite() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxIsFinite ( double  f)

returns true if the passed number is a finite floating point number as opposed to INF, NAN, etc.

References physx::intrinsics::isFinite().

◆ PxLog()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxLog ( float  x)

◆ PxMakeIterator() [1/2]

template<typename T >
PX_INLINE PxStrideIterator<T> PxMakeIterator ( T *  ptr,
PxU32  stride = sizeof(T) 
)

Stride iterator factory function which infers the iterator type.

◆ PxMakeIterator() [2/2]

template<typename T >
PX_INLINE PxStrideIterator<const T> PxMakeIterator ( const T *  ptr,
PxU32  stride = sizeof(T) 
)

Stride iterator factory function which infers the iterator type.

◆ PxMax() [1/2]

template<class T >
PX_CUDA_CALLABLE PX_FORCE_INLINE T PxMax ( a,
b 
)

The return value is the greater of the two specified values.

Referenced by PxVec2::maxElement(), PxVec3::maxElement(), PxVec2::maximum(), PxVec4::maximum(), PxVec3::maximum(), and PxClamp().

◆ PxMax() [2/2]

template<>
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxMax ( float  a,
float  b 
)

overload for float to use fsel on xbox

References physx::intrinsics::selectMax().

◆ PxMemCopy()

PX_FORCE_INLINE void* PxMemCopy ( void *  dest,
const void *  src,
PxU32  count 
)

Copies the bytes of one memory block to another. The memory blocks must not overlap.

Note
Use PxMemMove if memory blocks overlap.
Parameters
destPointer to block of memory to copy to.
srcPointer to block of memory to copy from.
countNumber of bytes to copy.
Returns
Pointer to destination memory block

References physx::intrinsics::memCopy().

Referenced by PxContactPair::bufferContacts(), PxSerializerDefaultAdapter< T >::exportData(), PxFixedSizeLookupTable< eMAX_NB_ENGINE_TORQUE_CURVE_ENTRIES >::operator=(), and PxFixedSizeLookupTable< eMAX_NB_ENGINE_TORQUE_CURVE_ENTRIES >::PxFixedSizeLookupTable().

◆ PxMemMove()

PX_FORCE_INLINE void* PxMemMove ( void *  dest,
const void *  src,
PxU32  count 
)

Copies the bytes of one memory block to another. The memory blocks can overlap.

Note
Use PxMemCopy if memory blocks do not overlap.
Parameters
destPointer to block of memory to copy to.
srcPointer to block of memory to copy from.
countNumber of bytes to copy.
Returns
Pointer to destination memory block

References physx::intrinsics::memMove().

◆ PxMemSet()

PX_FORCE_INLINE void* PxMemSet ( void *  dest,
PxI32  c,
PxU32  count 
)

Sets the bytes of the provided buffer to the specified value.

Parameters
destPointer to block of memory to set to the specified value.
cValue to set the bytes of the block of memory to.
countNumber of bytes to set to the specified value.
Returns
Pointer to memory block (same as input)

References physx::intrinsics::memSet().

Referenced by PxVehicleDifferentialNWData::PxVehicleDifferentialNWData().

◆ PxMemZero()

PX_FORCE_INLINE void* PxMemZero ( void *  dest,
PxU32  count 
)

Sets the bytes of the provided buffer to zero.

Parameters
destPointer to block of memory to set zero.
countNumber of bytes to set to zero.
Returns
Pointer to memory block (same as input)

References physx::intrinsics::memZero().

Referenced by PxWheelQueryResult::PxWheelQueryResult().

◆ PxMin() [1/2]

◆ PxMin() [2/2]

template<>
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxMin ( float  a,
float  b 
)

overload for float to use fsel on xbox

References physx::intrinsics::selectMin().

◆ PxPow()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxPow ( float  x,
float  y 
)

◆ PxQuat()

PX_CUDA_CALLABLE PX_INLINE PxQuat::PxQuat ( const PxMat33 m)
explicit

Creates from orientation matrix.

Parameters
[in]mRotation matrix to extract quaternion from.

References PxMat33::column0, PxMat33::column1, PxMat33::column2, PxSqrt(), PxVec3::x, PxVec3::y, and PxVec3::z.

◆ PxRecipSqrt() [1/2]

◆ PxRecipSqrt() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxRecipSqrt ( double  a)

reciprocal square root.

References sqrt().

◆ PxSetAssertHandler()

PX_FOUNDATION_API PX_DEPRECATED void PxSetAssertHandler ( PxAssertHandler handler)

◆ PxSetPhysXCommonDelayLoadHook()

PX_C_EXPORT PX_PHYSX_COMMON_API void PX_CALL_CONV PxSetPhysXCommonDelayLoadHook ( const physx::PxDelayLoadHook *  hook)

Sets delay load hook instance for PhysXCommon dll.

Parameters
[in]hookDelay load hook.
See also
PxDelayLoadHook

◆ PxSetPhysXCookingDelayLoadHook()

PX_C_EXPORT PX_PHYSX_CORE_API void PX_CALL_CONV PxSetPhysXCookingDelayLoadHook ( const physx::PxDelayLoadHook *  hook)

Sets delay load hook instance for PhysXCooking dll.

Parameters
[in]hookDelay load hook.
See also
PxDelayLoadHook

◆ PxSetPhysXDelayLoadHook()

PX_C_EXPORT PX_PHYSX_CORE_API void PX_CALL_CONV PxSetPhysXDelayLoadHook ( const physx::PxDelayLoadHook *  hook)

Sets delay load hook instance for PhysX dll.

Parameters
[in]hookDelay load hook.
See also
PxDelayLoadHook

◆ PxSetProfilerCallback()

PX_C_EXPORT PX_FOUNDATION_API void PX_CALL_CONV PxSetProfilerCallback ( physx::PxProfilerCallback profiler)

Set the callback that will be used for all profiling.

◆ PxSign()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxSign ( float  a)

◆ PxSin() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxSin ( float  a)

trigonometry – all angles are in radians.

Sine of an angle ( Unit: Radians )

References physx::intrinsics::sin().

Referenced by PxQuat::PxQuat().

◆ PxSin() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxSin ( double  a)

Sine of an angle ( Unit: Radians )

References sin().

◆ PxSqrt() [1/2]

◆ PxSqrt() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxSqrt ( double  a)

Square root.

References sqrt().

◆ PxTan() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxTan ( float  a)

Tangent of an angle. Unit: Radians.

◆ PxTan() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE double PxTan ( double  a)

Tangent of an angle. Unit: Radians.

◆ PxTransform()

◆ PxUnionCast()

template<class A , class B >
PX_FORCE_INLINE A PxUnionCast ( b)

References USE_VOLATILE_UNION.

◆ scaleFast()

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::scaleFast ( float  scale)

scales the AABB.

Calling this method for empty bounds leads to undefined behavior. Use scaleSafe() instead.

Parameters
scaleFactor to scale AABB by.

References PxBounds3::centerExtents(), PxBounds3::getCenter(), PxBounds3::getExtents(), PxBounds3::isValid(), and PX_SHARED_ASSERT.

Referenced by PxBounds3::scaleSafe().

◆ scaleSafe()

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::scaleSafe ( float  scale)

scales the AABB.

This version is safe to call for empty bounds.

Parameters
scaleFactor to scale AABB by.

References PxBounds3::isEmpty(), PxBounds3::isValid(), PX_SHARED_ASSERT, and PxBounds3::scaleFast().

◆ setEmpty()

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::setEmpty ( )

Sets empty to true.

References PxBounds3::maximum, PxBounds3::minimum, and PX_MAX_BOUNDS_EXTENTS.

◆ setMaximal()

PX_CUDA_CALLABLE PX_FORCE_INLINE void PxBounds3::setMaximal ( )

Sets the bounds to maximum size [-PX_MAX_BOUNDS_EXTENTS, PX_MAX_BOUNDS_EXTENTS].

References PxBounds3::maximum, PxBounds3::minimum, and PX_MAX_BOUNDS_EXTENTS.

◆ transformFast() [1/2]

PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformFast ( const PxMat33 matrix,
const PxBounds3 bounds 
)
static

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
[in]matrixTransform to apply, can contain scaling as well
[in]boundsThe bounds to transform.

References PxBounds3::basisExtent(), PxBounds3::getCenter(), PxBounds3::getExtents(), PxBounds3::isValid(), and PX_SHARED_ASSERT.

Referenced by PxBounds3::transformSafe().

◆ transformFast() [2/2]

PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformFast ( const PxTransform transform,
const PxBounds3 bounds 
)
static

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
[in]transformTransform to apply, can contain scaling as well
[in]boundsThe bounds to transform.

References PxBounds3::basisExtent(), PxBounds3::getCenter(), PxBounds3::getExtents(), PxBounds3::isValid(), PX_SHARED_ASSERT, PxTransform::q, and PxTransform::transform().

◆ transformSafe() [1/2]

PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformSafe ( const PxMat33 matrix,
const PxBounds3 bounds 
)
static

gets the transformed bounds of the passed AABB (resulting in a bigger AABB).

This version is safe to call for empty bounds.

Parameters
[in]matrixTransform to apply, can contain scaling as well
[in]boundsThe bounds to transform.

References PxBounds3::isEmpty(), PxBounds3::isValid(), PX_SHARED_ASSERT, and PxBounds3::transformFast().

◆ transformSafe() [2/2]

PX_CUDA_CALLABLE PX_INLINE PxBounds3 PxBounds3::transformSafe ( const PxTransform transform,
const PxBounds3 bounds 
)
static

gets the transformed bounds of the passed AABB (resulting in a bigger AABB).

This version is safe to call for empty bounds.

Parameters
[in]transformTransform to apply, can contain scaling as well
[in]boundsThe bounds to transform.

References PxBounds3::isEmpty(), PxBounds3::isValid(), PX_SHARED_ASSERT, and PxBounds3::transformFast().

Variable Documentation

◆ PxHalfPi

const float PxHalfPi = float(1.57079632679489661923)
static

◆ PxInvPi

const float PxInvPi = float(0.31830988618379067154)
static

◆ PxInvTwoPi

const float PxInvTwoPi = float(0.15915494309189533577)
static

◆ PxPi

◆ PxPiDivFour

const float PxPiDivFour = float(0.78539816339744830962)
static

◆ PxPiDivTwo

const float PxPiDivTwo = float(1.57079632679489661923)
static

◆ PxTwoPi

const float PxTwoPi = float(6.28318530717958647692)
static