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/PxTriangleMesh_8h-source.html | 162 +++++++++++++++++++++
1 file changed, 162 insertions(+)
create mode 100644 PhysX_3.4/Documentation/PhysXAPI/files/PxTriangleMesh_8h-source.html
(limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxTriangleMesh_8h-source.html')
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxTriangleMesh_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxTriangleMesh_8h-source.html
new file mode 100644
index 00000000..66583e44
--- /dev/null
+++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxTriangleMesh_8h-source.html
@@ -0,0 +1,162 @@
+
+
+ PxTriangleMesh.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_GEOMUTILS_NX_TRIANGLEMESH +00032 #define PX_PHYSICS_GEOMUTILS_NX_TRIANGLEMESH +00033 +00036 #include "foundation/PxVec3.h" +00037 #include "foundation/PxBounds3.h" +00038 #include "common/PxPhysXCommonConfig.h" +00039 #include "common/PxBase.h" +00040 +00041 #if !PX_DOXYGEN +00042 namespace physx +00043 { +00044 #endif +00045 +00051 #define PX_ENABLE_DYNAMIC_MESH_RTREE 1 +00052 +00064 struct PxMeshMidPhase +00065 { +00066 enum Enum +00067 { +00068 eBVH33 = 0, +00069 eBVH34 = 1, +00070 +00071 eINVALID = 2, +00072 eLAST = eINVALID +00073 }; +00074 }; +00075 +00081 struct PxTriangleMeshFlag +00082 { +00083 enum Enum +00084 { +00085 e16_BIT_INDICES = (1<<1), +00086 eADJACENCY_INFO = (1<<2) +00087 }; +00088 }; +00089 +00095 typedef PxFlags<PxTriangleMeshFlag::Enum,PxU8> PxTriangleMeshFlags; +00096 PX_FLAGS_OPERATORS(PxTriangleMeshFlag::Enum,PxU8) +00097 +00098 +00127 class PxTriangleMesh : public PxBase +00128 { +00129 public: +00135 virtual PxU32 getNbVertices() const = 0; +00136 +00142 virtual const PxVec3* getVertices() const = 0; +00143 +00144 #if PX_ENABLE_DYNAMIC_MESH_RTREE +00145 +00164 virtual PxVec3* getVerticesForModification() = 0; +00165 +00183 virtual PxBounds3 refitBVH() = 0; +00184 #endif // PX_ENABLE_DYNAMIC_MESH_RTREE +00185 +00191 virtual PxU32 getNbTriangles() const = 0; +00192 +00204 virtual const void* getTriangles() const = 0; +00205 +00215 virtual PxTriangleMeshFlags getTriangleMeshFlags() const = 0; +00216 +00229 virtual const PxU32* getTrianglesRemap() const = 0; +00230 +00231 +00237 virtual void release() = 0; +00238 +00247 virtual PxMaterialTableIndex getTriangleMaterialIndex(PxTriangleID triangleIndex) const = 0; +00248 +00254 virtual PxBounds3 getLocalBounds() const = 0; +00255 +00264 virtual PxU32 getReferenceCount() const = 0; +00265 +00271 virtual void acquireReference() = 0; +00272 +00273 protected: +00274 PX_INLINE PxTriangleMesh(PxType concreteType, PxBaseFlags baseFlags) : PxBase(concreteType, baseFlags) {} +00275 PX_INLINE PxTriangleMesh(PxBaseFlags baseFlags) : PxBase(baseFlags) {} +00276 virtual ~PxTriangleMesh() {} +00277 +00278 virtual bool isKindOf(const char* name) const { return !::strcmp("PxTriangleMesh", name) || PxBase::isKindOf(name); } +00279 }; +00280 +00287 class PxBVH33TriangleMesh : public PxTriangleMesh +00288 { +00289 public: +00290 protected: +00291 PX_INLINE PxBVH33TriangleMesh(PxType concreteType, PxBaseFlags baseFlags) : PxTriangleMesh(concreteType, baseFlags) {} +00292 PX_INLINE PxBVH33TriangleMesh(PxBaseFlags baseFlags) : PxTriangleMesh(baseFlags) {} +00293 virtual ~PxBVH33TriangleMesh() {} +00294 virtual bool isKindOf(const char* name) const { return !::strcmp("PxBVH33TriangleMesh", name) || PxTriangleMesh::isKindOf(name); } +00295 }; +00296 +00303 class PxBVH34TriangleMesh : public PxTriangleMesh +00304 { +00305 public: +00306 protected: +00307 PX_INLINE PxBVH34TriangleMesh(PxType concreteType, PxBaseFlags baseFlags) : PxTriangleMesh(concreteType, baseFlags) {} +00308 PX_INLINE PxBVH34TriangleMesh(PxBaseFlags baseFlags) : PxTriangleMesh(baseFlags) {} +00309 virtual ~PxBVH34TriangleMesh() {} +00310 virtual bool isKindOf(const char* name) const { return !::strcmp("PxBVH34TriangleMesh", name) || PxTriangleMesh::isKindOf(name); } +00311 }; +00312 +00313 #if !PX_DOXYGEN +00314 } // namespace physx +00315 #endif +00316 +00318 #endif +