From 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 Mon Sep 17 00:00:00 2001 From: git perforce import user Date: Tue, 25 Oct 2016 12:29:14 -0600 Subject: Initial commit: PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167] --- .../PhysXAPI/files/PxBase_8h-source.html | 159 +++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 PhysX_3.4/Documentation/PhysXAPI/files/PxBase_8h-source.html (limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxBase_8h-source.html') diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxBase_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxBase_8h-source.html new file mode 100644 index 00000000..90d84cc9 --- /dev/null +++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxBase_8h-source.html @@ -0,0 +1,159 @@ + + + NVIDIA(R) PhysX(R) SDK 3.4 API Reference: PxBase.h Source File + + + + + + + +

PxBase.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved.
+00027 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
+00028 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.  
+00029 
+00030 
+00031 #ifndef PX_PHYSICS_PX_BASE
+00032 #define PX_PHYSICS_PX_BASE
+00033 
+00038 #include "PxSerialFramework.h"
+00039 #include "PxCollection.h"
+00040 #include "common/PxTypeInfo.h"
+00041 #include "foundation/PxFlags.h"
+00042 #include <string.h> // For strcmp
+00043 
+00044 #if !PX_DOXYGEN
+00045 namespace physx
+00046 {
+00047 #endif
+00048 
+00049 typedef PxU16 PxType;
+00050 
+00054 struct PxBaseFlag
+00055 {   
+00056     enum Enum
+00057     {
+00058         eOWNS_MEMORY            = (1<<0),
+00059         eIS_RELEASABLE          = (1<<1)
+00060     };
+00061 };
+00062 
+00063 typedef PxFlags<PxBaseFlag::Enum, PxU16> PxBaseFlags;
+00064 PX_FLAGS_OPERATORS(PxBaseFlag::Enum, PxU16)
+00065 
+00066 
+00073 class PxBase
+00074 {
+00075 //= ATTENTION! =====================================================================================
+00076 // Changing the data layout of this class breaks the binary serialization format.  See comments for 
+00077 // PX_BINARY_SERIAL_VERSION.  If a modification is required, please adjust the getBinaryMetaData 
+00078 // function.  If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
+00079 // accordingly.
+00080 //==================================================================================================
+00081 public:
+00085     virtual     void                        release()                                       = 0;    
+00086 
+00091     virtual     const char*                 getConcreteTypeName() const                     = 0;
+00092 
+00093     /* brief Implements dynamic cast functionality. 
+00094 
+00095     Example use:
+00096     
+00097     if(actor->is<PxRigidDynamic>()) {...}
+00098 
+00099     \return A pointer to the specified type if object matches, otherwise NULL
+00100     */
+00101     template<class T> T*                    is()                                            { return typeMatch<T>() ? static_cast<T*>(this) : NULL; }
+00102 
+00103     /* brief Implements dynamic cast functionality for const objects. 
+00104 
+00105     Example use:
+00106     
+00107     if(actor->is<PxRigidDynamic>()) {...}
+00108 
+00109     \return A pointer to the specified type if object matches, otherwise NULL
+00110     */
+00111     template<class T> const T*              is() const                                      { return typeMatch<T>() ? static_cast<const T*>(this) : NULL; }
+00112 
+00119     PX_FORCE_INLINE PxType                  getConcreteType() const                         { return mConcreteType; }
+00120                 
+00127     PX_FORCE_INLINE void                    setBaseFlag(PxBaseFlag::Enum flag, bool value)  { mBaseFlags = value ? mBaseFlags|flag : mBaseFlags&~flag; }
+00128     
+00136     PX_FORCE_INLINE void                    setBaseFlags(PxBaseFlags inFlags )              { mBaseFlags = inFlags; }
+00137     
+00145     PX_FORCE_INLINE PxBaseFlags             getBaseFlags() const                            { return mBaseFlags; }
+00146 
+00156     virtual     bool                        isReleasable() const                            { return mBaseFlags & PxBaseFlag::eIS_RELEASABLE; }
+00157 
+00158 protected:
+00162     PX_INLINE                               PxBase(PxType concreteType, PxBaseFlags baseFlags)
+00163                                                 : mConcreteType(concreteType), mBaseFlags(baseFlags) {}
+00164 
+00168     PX_INLINE                               PxBase(PxBaseFlags baseFlags) : mBaseFlags(baseFlags) {}
+00169 
+00173     virtual                                 ~PxBase()                                       {}
+00174 
+00178     virtual             bool                isKindOf(const char* superClass) const { return !::strcmp(superClass, "PxBase"); }
+00179 
+00180     template<class T>   bool                typeMatch() const
+00181                                             {
+00182                                                 return PxU32(PxTypeInfo<T>::eFastTypeId)!=PxU32(PxConcreteType::eUNDEFINED) ? 
+00183                                                     PxU32(getConcreteType()) == PxU32(PxTypeInfo<T>::eFastTypeId) : isKindOf(PxTypeInfo<T>::name());
+00184                                             }
+00185 
+00186 
+00187 private:
+00188     friend              void                getBinaryMetaData_PxBase(PxOutputStream& stream);
+00189 
+00190 protected:
+00191     PxType                                  mConcreteType;          // concrete type identifier - see PxConcreteType.
+00192     PxBaseFlags                             mBaseFlags;             // internal flags
+00193 
+00194 };
+00195 
+00196 #if !PX_DOXYGEN
+00197 } // namespace physx
+00198 #endif
+00199 
+00201 #endif
+
+ +

+Copyright © 2008-2016 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com + + -- cgit v1.2.3