PxPhysXCommonConfig.h
Go to the documentation of this file.
1 //
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions
4 // are met:
5 // * Redistributions of source code must retain the above copyright
6 // notice, this list of conditions and the following disclaimer.
7 // * Redistributions in binary form must reproduce the above copyright
8 // notice, this list of conditions and the following disclaimer in the
9 // documentation and/or other materials provided with the distribution.
10 // * Neither the name of NVIDIA CORPORATION nor the names of its
11 // contributors may be used to endorse or promote products derived
12 // from this software without specific prior written permission.
13 //
14 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
15 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
18 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 //
26 // Copyright (c) 2008-2021 NVIDIA Corporation. All rights reserved.
27 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
28 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
29 
30 
31 #ifndef PX_PHYSICS_COMMON_NX
32 #define PX_PHYSICS_COMMON_NX
33 
37 #include "foundation/Px.h"
38 
39 /*Disable support for VS2017 prior version 15.5.1 for windows platform, because of a compiler bug:
40 https://developercommunity.visualstudio.com/content/problem/66047/possible-compiler-bug.html
41 */
42 #if (PX_VC == 15) && PX_WINDOWS && (_MSC_FULL_VER < 191225830)
43 #error Visual studio 2017 prior to 15.5.1 is not supported because of a compiler bug.
44 #endif
45 
46 // define API function declaration (public API only needed because of extensions)
47 #if defined PX_PHYSX_STATIC_LIB
48  #define PX_PHYSX_CORE_API
49 #else
50  #if (PX_WINDOWS_FAMILY || PX_XBOXONE || PX_PS4 || PX_XBOX_SERIES_X)
51  #if defined PX_PHYSX_CORE_EXPORTS
52  #define PX_PHYSX_CORE_API __declspec(dllexport)
53  #else
54  #define PX_PHYSX_CORE_API __declspec(dllimport)
55  #endif
56  #elif PX_UNIX_FAMILY
57  #define PX_PHYSX_CORE_API PX_UNIX_EXPORT
58  #else
59  #define PX_PHYSX_CORE_API
60  #endif
61 #endif
62 
63 #if PX_SUPPORT_GPU_PHYSX
64 // define API function declaration
65 #if defined PX_PHYSX_GPU_STATIC
66  #define PX_PHYSX_GPU_API
67 #else
68  #if PX_WINDOWS
69  #if defined PX_PHYSX_GPU_EXPORTS
70  #define PX_PHYSX_GPU_API __declspec(dllexport)
71  #else
72  #define PX_PHYSX_GPU_API __declspec(dllimport)
73  #endif
74  #elif PX_UNIX_FAMILY
75  #define PX_PHYSX_GPU_API PX_UNIX_EXPORT
76  #else
77  #define PX_PHYSX_GPU_API
78  #endif
79 #endif
80 
81 #else // PX_SUPPORT_GPU_PHYSX
82 #define PX_PHYSX_GPU_API
83 #endif // PX_SUPPORT_GPU_PHYSX
84 
85 #if defined PX_PHYSX_STATIC_LIB
86  #define PX_PHYSX_COMMON_API
87 #else
88  #if (PX_WINDOWS_FAMILY || PX_XBOXONE || PX_PS4 || PX_XBOX_SERIES_X) && !defined(__CUDACC__)
89  #if defined PX_PHYSX_COMMON_EXPORTS
90  #define PX_PHYSX_COMMON_API __declspec(dllexport)
91  #else
92  #define PX_PHYSX_COMMON_API __declspec(dllimport)
93  #endif
94  #elif PX_UNIX_FAMILY
95  #define PX_PHYSX_COMMON_API PX_UNIX_EXPORT
96  #else
97  #define PX_PHYSX_COMMON_API
98  #endif
99 #endif
100 
101 // Changing these parameters requires recompilation of the SDK
102 
103 #if !PX_DOXYGEN
104 namespace physx
105 {
106 #endif
107  class PxCollection;
108  class PxBase;
109 
110  class PxHeightField;
111  class PxHeightFieldDesc;
112 
113  class PxTriangleMesh;
115 
116  typedef PxU32 PxTriangleID;
118 
119 #if !PX_DOXYGEN
120 } // namespace physx
121 #endif
122 
124 #endif
Definition: GuContactBuffer.h:37
Descriptor class for PxHeightField.
Definition: PxHeightFieldDesc.h:54
A triangle mesh, also called a &#39;polygon soup&#39;.
Definition: PxTriangleMesh.h:126
A convex mesh.
Definition: PxConvexMesh.h:84
PxU16 PxMaterialTableIndex
Definition: PxPhysXCommonConfig.h:117
A height field class.
Definition: PxHeightField.h:85
Collection class for serialization.
Definition: PxCollection.h:105
PxU32 PxTriangleID
Definition: PxPhysXCommonConfig.h:114
uint16_t PxU16
Definition: PxSimpleTypes.h:73
uint32_t PxU32
Definition: Px.h:48
Base class for objects that can be members of a PxCollection.
Definition: PxBase.h:73